Python Dir函数返回不同的结果[重复]

问题描述 投票:0回答:1

我正在尝试获取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']

我的复选框是返回结果的一部分。但是,当我将“自身”替换为“窗口”类时,缺少复选框属性!

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__']

外观相同,但是未返回我的复选框!这是怎么回事?

python checkbox directory attributes wxpython
1个回答
0
投票

没有实例化诸如Window的类。因此,它无法访问任何需要类实例的东西。在以下代码中:

class A:
    b = 0

    def __init__(self):
        self.a = 1

print(dir(A))
inst = A()
print(dir(inst))

dir(A)将不包含a,因为对a的访问需要实例化,因为在__init__方法中为每个实例分别声明了该实例。它包含b,它是静态的(属于类本身,而不是其实例)。 dir(inst)将同时包含ab

© www.soinside.com 2019 - 2024. All rights reserved.