代码如下
>>> class FooBar:
def _init_(self):
self.somevar = 42
>>> f = FooBar()
>>> f.somevar
执行f.somevar出现
Traceback(most recent call last):
File "<input>",line1.in <module>
AttributeError:FooBar instance has no attribute 'somevar'
AttributeError错误是引用属性或给它赋值失败时引发。显然f = FooBar() 并未成功。
解决办法:
1. pycharm中python命令端,构造函数书写方式是__init__(即两个下划线),这个是一个原因。
2. 开头添加赋值语句__metaclass__=type将解决新式类和旧式类书写方式统一的问题,统一为新式类。比如
class NewStyle(object):
more_code_here
class OldStyle:
more_code_here