Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python类成员与实例成员不同_Python_Checkbox_Directory_Attributes_Wxpython - Fatal编程技术网

Python类成员与实例成员不同

Python类成员与实例成员不同,python,checkbox,directory,attributes,wxpython,Python,Checkbox,Directory,Attributes,Wxpython,我正在尝试获取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_static

我正在尝试获取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']
打印(自身)
a=dir(自我)
印刷品(a)
#结果
[“AcceleratorTable”、“AcceptsFocus”等。。。
“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__']

打印(窗口)
a=dir(窗口)
印刷品(a)
#结果
[“AcceleratorTable”、“AcceptsFocus”等…”。。,
“窗口型”的“窗口型”的“窗口型”的,“窗口型”的,“窗口型”的,“窗口型”的“窗口型”的,“窗口型”的“窗口型”的,“窗口型”的“窗口型”的,“窗口型”的,“窗口型”的,“窗口型”的,“窗口型”的“窗口型”的,“窗口型”的“校园型”的“校园型”的“校园型,“校园型”的“校园型”的“UUUUUUUUUUUUUU的去去去去去去去了,,”的去去去去去去了去了去了去了去了去去了去了去了去了去了去了,去了去了,去了去了,去了,去了,去了去了去了去了去了,去了,去了,去了,去了,去了,去了,去了,去了,去了,去了,去了,去了,去了,去了,去了,“去了,”去了","新","非零","减少","减少","模块","新","非零","减少","减少","报告","设置属性","大小"__“,”“str”“,”“subclasshook”“,”“weakref”“]

看起来一样,但我的复选框没有返回!这里发生了什么?

Window
这样的类没有实例化。因此,它无法访问任何需要类实例的内容。在以下代码中:

class A:
    b = 0

    def __init__(self):
        self.a = 1

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

dir(A)
将不包含
A
,因为对
A
的访问需要实例化,因为它是在
\uuuu init\uuu
方法中为每个实例单独声明的。它将包含
b
,它是静态的(属于类本身而不是它的实例)
dir(inst)
将同时包含
a
b

在类实例和类上运行一次。为什么您希望得到类似的结果?这显然与
self
Window
的实例不同,
Window
本身是一个
类。你能给我们看更多的代码吗?特别是什么窗口以及初始化的目录(self)
在哪里。将
self
更改为
type(self)
,结果将是相同的。类是一个类,self是该类的实例。实例拥有所有您设置为
self.something=
,类没有这些。我明白了。那么,如何从类外获取复选框值呢?我可以从类外部定向类实例吗?可以,您可以从类外部
dir
类实例。看看我的例子,谢谢。如果我的构造函数也有父级呢?我不确定在这种情况下需要给出什么样的位置参数。类MainFrame(wx.Frame):def init_uuuuu(self,parent):wx.Frame.uuuu init(self,parent,id=wx.id_uany,title=u“多服务器工具”,pos=wx.DefaultPosition,size=wx.size(1280720),style=wx.DEFAULT_Frame_u样式| wx.MAXIMIZE | wx.TAB_遍历)明白了!非常感谢你。一个也不给