如果我在
python中创建一个简单的函数,它同时具有__dict__和func_dict作为属性,两者都以空字典开头:
>>> def foo(): ... return 42 ... >>> foo.__dict__ {} >>> foo.func_dict {}
如果我向foo添加一个属性,它会显示在两者中:
>>> foo.x = 7 >>> foo.__dict__ {'x': 7} >>> foo.func_dict {'x': 7}
这些属性有什么区别?是否存在一个特定用例?
解决方法
它们是同一个潜在词典的别名.你应该使用__dict__,因为func_dict已经在Python 3中消失了.