python getattr setattr,python getattr和getattribute
为什么doesattrsaythattheinstancedoes tha vea执着的猎豹属性?
类一个(对象) :@属性。极好的执拗的猎豹(自己) :错误错误错误。
a=A()))。
哈撒特尔(一个,执着的猎豹) ) ) ) ) ) ) ) ) ) ) )。
假
我期望:
哈撒特尔(一个,执着的猎豹) ) ) ) ) ) ) ) ) ) ) )。
hasattrisfairlynaive的python 2实现,它只是triestoaccessthattributeandseeewheteritiraisesa exception not .
不幸的是,这意味着哈萨特吃异常时,它也将返回不正确的答案(此处为属性a .执着的猎豹确实存在,所以结果应该是
在python3.2中,行为已被修正:
哈撒特尔(对象,名称)).
theargumentsareanobjectandstring。结果结构字符串是对象属性的名称,如果不是,则为错误.(thisisimplemplemp)并查看hetheritiraisesanattributeerror not .) )。
修复方法就在这里,但不幸的是,这种变化没有反向移植。
如果python 2 behaviourcausestroubleforyou,请考虑避免使用哈萨特而不是youcanusetry/exceparoundgetattr,catchinglythattributeerrexceptionandlettinganyothersraisunhandled。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。