尝试放置标签时的AttributeError

时间:2017-11-23 16:55:57

标签: python python-3.x tkinter

我正在尝试使用Tkinter在Python中创建一个基本的点击游戏。当我尝试放置一个在同一个类中的另一个函数中创建的标签时,我得到一个AttributeError(参见代码片段)。运行tkinter窗口的代码在主线程中是 NOT ,主线程充当控制台。我从控制台运行aClass.funcBaClass.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 :在旁注中,如果有人能告诉我窗口实际上是如何在这个实例中启动的话那就太棒了

2 个答案:

答案 0 :(得分:0)

尝试并删除所有自我,因为我认为它只保留def,因为funcB不知道aLabel存在。

答案 1 :(得分:0)

Python类中的方法需要self作为第一个参数:

def funcB(self):
    global window
    self = window
    self.aLabel.place(<argsHere>)

您需要此参数才能访问aLabel