为了账号安全,请及时绑定邮箱和手机立即绑定

Python 类成员与实例成员不同

Python 类成员与实例成员不同

收到一只叮咚 2022-08-16 10:30:37
我正在尝试获取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__']它看起来是一样的,但我的复选框没有被返回!这是怎么回事?
查看完整描述

1 回答

?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

此类类未实例化。因此,它无法访问任何需要类实例的内容。在下面的代码中:Window


class A:

    b = 0


    def __init__(self):

        self.a = 1


print(dir(A))

inst = A()

print(dir(inst))

dir(A)将不包含 ,因为 访问 需要实例化,因为它是为方法中的每个实例单独声明的。它将包含 ,这是静态的(属于类本身,而不是它的实例)。 将同时包含 和 。aa__init__bdir(inst)ab


查看完整回答
反对 回复 2022-08-16
  • 1 回答
  • 0 关注
  • 73 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信