hasattr
不测试字典的成员。请改用in
运算符或.has_key
方法:
>>> example = dict(foo='bar')
>>> 'foo' in example
True
>>> example.has_key('foo')
True
>>> 'baz' in example
False
但是请注意,dict.has_key()
PEP 8样式指南不建议使用该建议,并且已在Python 3中将其完全删除。
顺便说一句,使用可变的类变量会遇到问题:
>>> class example(object):
... foo = dict()
...
>>> A = example()
>>> B = example()
>>> A.foo['bar'] = 'baz'
>>> B.foo
{'bar': 'baz'}
初始化为__init__
:
class State(object):
info = None
def __init__(self):
self.info = {}