你能帮我找到问题吗?有效的Python代码:
class ParamWindow:
def __init__(self, b):
self.a = b
print self.a
params = ParamWindow(8)
print params.a
Run Code Online (Sandbox Code Playgroud)
这打印8和8.好的.然后我做:
class ParamWindow:
def __init__(self, parent, b):
self = wx.Frame(parent = parent, id=-1, title="Parameters")
self.a = b
print self.a
params = ParamWindow(None, 8)
print params.a
Run Code Online (Sandbox Code Playgroud)
它说"ParamWindow实例没有属性'a'".为什么不呢?我告诉他自己是Frame然后添加一个字段"a"(此时没有错误)但是当我要求打印它时(打印行出错),它忘记了"a"存在...我哪里错了?谢谢.
def __init__(self, parent, b):
self = wx.Frame(parent = parent, id=-1, title="Parameters")
Run Code Online (Sandbox Code Playgroud)
在这里你重新分配self,所以你最终没有参考ParamWindow实例了!你永远不应该那样做!你想要实现什么目标?
self.a = b
Run Code Online (Sandbox Code Playgroud)
在这里,你分配a给self,现在是Frame,而不是ParamWindow. ParamWindow.a永远不会被定义,你以后会得到错误.
也许你想继承从Frame?如果是这样,您的代码应如下所示:
class ParamWindow(wx.Frame):
def __init__(self, parent, b):
# Initialize the superclass (wx.Frame).
super(ParamWindow, self).__init__(parent=parent, id=-1, title="Parameters")
self.a = b
print self.a
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
212 次 |
| 最近记录: |