我正在尝试使用Tkinter在Python中创建一个基本的点击游戏。当我尝试放置一个在同一个类中的另一个函数中创建的标签时,我得到一个AttributeError
(参见代码片段)。运行tkinter窗口的代码在主线程中是 NOT ,主线程充当控制台。我从控制台运行aClass.funcB
,aClass.funcA
已经执行。
class aClass:
def funcA(self):
self.aLabel = Label(top)
global window
window = self
def funcB():
global window
self = window
self.aLabel.place(<argsHere>)
我得到的错误是:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<filePathHere>", line 334, in funcB
self.aLabel.place(<argsHere>)
AttributeError: 'NoneType' object has no attribute 'aLabel'
如果有人想查看实际代码(我不了解自己的部分内容),请告诉我。
编辑:以下是指向实际文件https://github.com/LeotomasMC/Click-Clicker的github的链接
编辑2 :在旁注中,如果有人能告诉我窗口实际上是如何在这个实例中启动的话那就太棒了
答案 0 :(得分:0)
尝试并删除所有自我,因为我认为它只保留def,因为funcB不知道aLabel存在。
答案 1 :(得分:0)
Python类中的方法需要self
作为第一个参数:
def funcB(self):
global window
self = window
self.aLabel.place(<argsHere>)
您需要此参数才能访问aLabel
。