4 自省
Python中任何东西都是对象,自省是指代码可以查看内存中以对象形式存在的其它模块和函数,获取它们的信息,并对它们进行操作。用这种方法, 你可以定义没有名称的函数,不按函数声明的参数顺序调用函数,甚至引用事先并不知道名称的函数。
使用可选参数和命名参数
和c比起来真是……哼哼c
关于python可变形参的理解:认为形参是dic数据,这样对应这送进去了~
内置函数
type()
str()
Python 内置函数都归组到了 __builtin__
自审的核心getattr()
使用getattr()做分发者,方便兼容和扩展。
bool值判断
0、''、[]、()、{}、None 在布尔上下文中为假;其它任何东西都为真
and从左到右推演,全部为真返回最后一个
'a'and 'b'
推演顺序为判断'a'为真,所以继续判断 ,'b'为真,返回'b'
'a' and ''
推演顺序为判断'a'为真,所以继续判断,''为真,返回'' Orz
or从左到右推演,全部为真返回最后一个
'a'or 'b'
推演顺序为判断'a'为真,退出返回'a'
0 and 2
推演顺序为判断0为假,所以继续判断,2为真,所以返回2
and or 技巧
感觉用处比较怪异~
#in apihelper.py 估计是2.6版本的
processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
|
processFunc 现在是一个函数,但是它到底是哪一个函数还要取决于 collapse 变量。如果 collapse 为真,processFunc(string) 将压缩空白;否则 processFunc(string) 将返回未改变的参数。
lambda函数用处:建立一个简单简短的函数。
性质:lambda 函数 在布尔上下文中总是为真
举例:
g = lambda x: x*2
>>> g(3)6
本
作品由
loseblue创作,采用进行许可。
阅读(716) | 评论(0) | 转发(0) |