python中的属性错误。对象没有属性

2024-04-16 11:43:55 发布

您现在位置:Python中文网/ 问答频道 /正文

这段代码是一个更大的程序的一部分,该程序使用googlesheets API从云数据库中获取数据(不是真正相关的,但是有点上下文不会伤害!)在

我在一个名为'哎呀.py'

class SetupClassroom:
    def __init__(self, arraynumber='undefined', tkroot='undefined'):
        self.arraynumber = arraynumber
        self.tkroot = tkroot

    def setarraynumber(self, number):
        from GUI_Stage_3 import showclassroom
        self.arraynumber = number
        print ('set array number:', number)

        showclassroom()

    def settkroot(self, tkrootinput):
        self.tkroot = tkrootinput

在self.tkroot公司已由代码的另一部分指定。这个位起作用了,因为我已经测试过它正在被分配,但是,当我调用'self.tkroot公司“在另一个像这样的文件里

^{pr2}$

我得到这个错误

Exception in Tkinter callback
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py", line 1705, in __call__
    return self.func(*args)
  File "/Users/jonathansalmon/PycharmProjects/Coursework_GUI/GUI_Stage2_better.py", line 176, in <lambda>
    l0 = ttk.Button(teacher_root, text=button0text, command=lambda: (SetupClassroom.setarraynumber(SetupClassroom, number=button0text), SetupClassroom.settkroot(SetupClassroom, 'teacher_root')))
  File "/Users/jonathansalmon/PycharmProjects/Coursework_GUI/oop.py", line 99, in setarraynumber
    showclassroom()
  File "/Users/jonathansalmon/PycharmProjects/Coursework_GUI/GUI_Stage_3.py", line 29, in showclassroom
    root = SetupClassroom.tkroot
AttributeError: type object 'SetupClassroom' has no attribute 'tkroot'

我尝试在python控制台中设置它,但它成功了,所以我不知道问题出在哪里。 如果有人能帮忙,我们将不胜感激 谢谢! 约翰


Tags: inpyselfnumberdeflineguiusers
1条回答
网友
1楼 · 发布于 2024-04-16 11:43:55

您应该创建一个类的实例,它将在__init__中创建属性,self.tkroot是instance not class的属性:

setupClassroom = SetupClassroom()
print(setupClassroom.tkroot)

希望这对你有帮助。在

相关问题 更多 >