这是我的代码无效
class MyClass:
special_items = {}
def preload_items(self):
special_items['id'] = "properties"
NameError:未定义全局名称'special_items'
作品
class MyClass:
special_items = {}
def preload_items(self):
MyClass.special_items['id'] = "properties"
special_items
不是我可以在这个班级的任何地方访问的静态成员吗?
答案 0 :(得分:2)
python中没有静态成员这样的东西。你定义的是一个班级成员。该成员存储在类对象中,如您所示,它被访问为MyClass.special_items
。
您尝试做的似乎是初始化special_items.
为此,classmethod
更合适(self
没有用):
@classmethod
def preload_items(cls):
cls.special_items['id'] = "properties"
请注意,您也可以将其作为self.special_items
访问,但它仍然存储在类对象中,即该类的所有对象都访问相同的值。