避免链接属性上的非类型attributeerror异常
noattr的Python项目详细描述
访问具有链接属性的对象时
info = obj.a.b.c.d or 'Unknown'
通常,当一个中间属性返回“none”时,它将失败
if obj.a returns None obj.a.b.c.d will fail with that exception : AttributeError: 'NoneType' object has no attribute 'b'
为了避免这种情况,应该返回noattr,而不是返回“none”值, 即使是下一个链式属性也将返回“noattr”
if obj.a returns NoAttr obj.a.b.c.d will not fail and will return NoAttr
根据上下文的不同,“noattr”可以被视为false、0、、[]或{},因此
if obj.a returns NoAttr obj.a.b.c.d or 'Unknown' will return 'Unknown' for i in obj.a.b.c.d: print i prints nothing obj.a.b.c.d + 1 returns 1 obj.a.b.c.d.anyfunc() returns NoAttr but for ljust(), rjust(), rfind(), find(), rindex(), index(), count() NoAttr is seen as '' : obj.a.b.c.d.ljust(3) returns ' '
新闻
0.0.8(2018-08-24)
_ iter\uuu()现在返回一个空iter
0.0.7(2018-08-21)
更新python3兼容性代码
0.0.6(2016-03-11)
删除python文本操作的“或”和“rshift”定义
0.0.5(2015-10-13)
添加为列表属性
0.0.4(2015-08-19)
添加setattr以避免任何修改
0.0.3(2015-07-27)
第一个官方版本