'function'对象没有属性'tk'是什么意思?

时间:2017-09-09 19:49:00

标签: python function tkinter attributes python-3.5

我正在开发一个程序,可以让您注册一个帐户,然后通过将详细信息写入txt文档并再次阅读它们再次登录,一切正常,直到我添加了这个:

def login():
    fh = open("usernamepassword.txt", "r")
    lines = fh.readlines()
    fh.close()
    username=(lines[0])
    fname=(lines[2])
    lname=(lines[3])

此部分尚未完成,但每当我在三重引号中运行没有此脚本的脚本时,我会收到此错误:

Traceback (most recent call last):
  File "C:\Users\Robbie\Documents\Python\Signup - Login.py", line 274, in <module>
    b2=Button(login, text="Don't have an account? Make one here!", command=signupswitch)
  File "C:\Users\Robbie\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 2209, in __init__
    Widget.__init__(self, master, 'button', cnf, kw)
  File "C:\Users\Robbie\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 2132, in __init__
    BaseWidget._setup(self, master, cnf)
  File "C:\Users\Robbie\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 2110, in _setup
    self.tk = master.tk
AttributeError: 'function' object has no attribute 'tk'

正如您在上面所看到的,变量'b2'与上面的部分无关。我查看了tkinter的 init 文件,但是,因为我是python的初学者,所以我找不到任何东西。我在网上搜索了几个小时来解决这个问题,但我找不到任何东西!我真的需要回答这个问题,因为这是我的计算机科学GCSE。

1 个答案:

答案 0 :(得分:1)

您正在插入函数login作为按钮的父窗口小部件:

b2=Button(login, text="Don't have an account? Make one here!", command=signupswitch)

login替换为根窗口小部件或父窗口小部件。