如何调试Python中的“TypeError:StringVar”类型的对象没有len()?

2024-06-26 17:49:59 发布

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

以下是Python 3 shell的错误:

##

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\DMECHCH\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 1699, in __call__
    return self.func(*args)
  File "C:/Users/DMECHCH/OneDrive/Courses ARA/Diploma IT Tech Support Courses/DTEC501 - Programming fundementals/Week 14 Session 1/14-3 Q1.py", line 119, in <lambda>
    check_btn = Button(root_window,text="Change Password",command=lambda: validate_password(pwd1, pwd2))
  File "C:/Users/DMECHCH/OneDrive/Courses ARA/Diploma IT Tech Support Courses/DTEC501 - Programming fundementals/Week 14 Session 1/14-3 Q1.py", line 27, in validate_password
    pwd_length = len(password)
TypeError: object of type 'StringVar' has no len()
##

单击按钮时出错

这是完整的代码

^{pr2}$

在函数被调用后,我想打印出从该函数到shell的返回值,或者是True,要么是False,但是需要先通过错误

我还是Python新手,所以我的代码可能需要改进。在


Tags: inpy错误lineitpasswordonedriveshell
2条回答

在您的validate_password函数中,您声明

password = first_pwd
pwd_length = len(password)

但是您将StringVar作为first_pwd传入。StringVar对象没有长度。在传递给函数之前,您需要.get()文本。在

您的代码正在将Tkinter StringVars传递给validate_password()函数。您需要调用StringVar的get()方法来获取Python字符串。比如p1 = first_pwd.get()。在

相关问题 更多 >