Python 类成员与实例成员不同

我正在尝试获取WxPython复选框的值。当我在类中运行以下命令时:


print(self)

a = dir(self)

print(a)


#result

<__main__.Window object at 0x03B02670>

['AcceleratorTable', 'AcceptsFocus', etc...

 'm_staticText3', 'm_staticText31', 'm_staticText311', 'm_staticText3111', 'm_staticText3112', 'm_staticText31121', 'm_staticline1', 'm_staticline3']

我的复选框是返回结果的一部分。但是,当我用“self”代替类“Window”时,复选框属性丢失了!


print(Window)

a = dir(Window)

print(a)


#result

<class '__main__.Window'>

['AcceleratorTable', 'AcceptsFocus', etc..,

 'WindowVariant', '__bool__', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__nonzero__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']


它看起来是一样的,但我的复选框没有被返回!这是怎么回事?


收到一只叮咚
浏览 74回答 1
1回答

料青山看我应如是

此类类未实例化。因此,它无法访问任何需要类实例的内容。在下面的代码中:Windowclass A:&nbsp; &nbsp; b = 0&nbsp; &nbsp; def __init__(self):&nbsp; &nbsp; &nbsp; &nbsp; self.a = 1print(dir(A))inst = A()print(dir(inst))dir(A)将不包含 ,因为 访问 需要实例化,因为它是为方法中的每个实例单独声明的。它将包含 ,这是静态的(属于类本身,而不是它的实例)。 将同时包含 和 。aa__init__bdir(inst)ab
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python