我正在使用wxPython为GUI编写计算器。我创建了一个名为display的类来使用StaticText来显示文本。无论如何,当我尝试更新屏幕时,它会引发异常。 这是代码:
class display:
def __init__(self,parent, id):
print "display class is working"
global string1
self.view = wx.StaticText(frame, -1, "Waiting", (30,7), style = wx.ALIGN_CENTRE)
@staticmethod
def update(self):
global string1
self.view.SetLabel(string1)
每当我尝试运行Update()函数时,它都会引发此异常:
AttributeError: 'function' object has no attribute 'view'
当我写" self.view = wx时。等等#34;,我试图将StaticText设置为变量名,所以我可以使用SetLabel函数。在我尝试更新之前,该文本似乎有效。为什么我无法更新它?我该如何解决?
答案 0 :(得分:0)
@staticmethods没有参数...所以它实际上没有自我...你需要让它成为一个获得cls的@classmethod,或者你需要让它成为一个普通的方法
class display:
view = None
def __init__(self,parent, id):
print "display class is working"
global string1
display.view = wx.StaticText(frame, -1, "Waiting", (30,7), style = wx.ALIGN_CENTRE)
@classmethod
def update(cls):
global string1
cls.view.SetLabel(string1)