函数参数的一些细节:
1:函数的参数值可以预定义 比如:def info(object, spacing=10, collapse=1):
2:调用的时候参数的顺序可以是乱序,但必须指定(不推荐)比如:info(spacing=15, object=odbchelper)
本质:其实函数的参数只不过是一个字典。“通常” 不使用参数名称的函数调用只是一个简写的形式。
常用的内置函数(__buildin__模块):
1:type: 返回任意对象的函数类型,包括数字,字符串,内置数据结构,类,模块..(一切都是对象,记得吗?)... 用法: type(1) --> int
2: str:将数据强制转换为字符串。每种数据类型都可以强制转换为字符串. 用法:str(54) --> '54'
3: dir: 返回任意对象的属性和方法列表,包括模块对象、函数对象、字符串对象、列表对象、字典对象 ……
例子:li = []; dir(li) --> ['append', 'count', 'extend', 'index', 'insert','pop', 'remove', 'reverse', 'sort'] (还是一切都是对象....)
4:callable 函数,它接收任何对象作为参数,如果参数对象是可调用的,返回 True;否则返回 False
5: getattr(obj,str,[default]), 传入对象以及它对应的方法名(字符串),返回 传入对象的子对象
6: 过滤列表:[mapping-expression for element in source-list if filter-expression]
ex: [element*2 for element in list if element > 2]
7: and-or : 返回得出结论的值(0、''、[]、()、{}、None 在布尔环境中为假;其它任何东西都为真)
ex: 'a' and 'b' ---> 'b'; '' and 'b' --> ''
'a' or 'b' --> 'a' '' or 'b' --> 'b'
1 and a or b (a 不为空) = bool? a:b
8: lambda为匿名函数,可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值。lambda 函数不能包含命令,包含的表达式不能超过一个。
ex: fuc = lambda x: x*2; fuc(2);