python - “'str'对象不可调用”是什么意思?
问题描述
我正在学习课程,但我不确定为什么这不起作用:
class User:
def __init__(self, fname, lname, login, password, email, nickname):
self.fname = fname
self.lname = lname
self.login = login
self.password = password
self.email = email
self.nickname = nickname
print('Thank you')
def login(self, log, pas):
if log == self.login and pas!= self.password:
print('The password you entered is incorrect')
elif log != self.login and pas == self.password:
print('The login you entered is incorrect')
elif log != self.login and pas != self.password:
print('cannot find that account')
else:
print(f"Welcome {self.nickname}")
return True
firstname = input('What is your first name? ')
lastname = input('What is your last name? ')
login_name = input('What would your login be? ')
your_password = input('What would your password be? ')
your_email = input('What is your email? ')
your_nickname = input('What would you like to be called? ')
user_1 = User(firstname, lastname, login_name, your_password, your_email, your_nickname)
access = False
while access == False
log_name = input('Login: ')
log_pass = input('Password: ')
access = user_1.login('log_name', 'log_pass')
解决方案
一个类的实例一次只能将一个事物分配给一个给定的名称。在这种情况下,您的班级有两个:
login()
创建类时添加的方法- 变量,它在运行
login
时覆盖上面的内容。__init__()
您需要将方法或变量重命名为其他名称,以便它们可以和平共存。
推荐阅读
- servicestack - AutoQuery/OrmLite incorrect total value when using joins
- java - 如何从 Json 字符串动态创建按钮
- c++ - Is there any way to access QByteArray member which is member of a union
- python-3.x - 从scrapy爬取更新sqlite DB中的数据的问题
- sitecore - 挂钩到项目选择操作
- hibernate - Flyway & MariaDB:SQLException 外键约束的格式不正确
- variables - 如何将命令输出保存到变量
- algorithm - 为什么此代码通过 Prim 的算法生成错误的最小生成树?
- python - 如何忽略某些方法而不是其他方法的 __repr__()
- android - 在 Raspberry Pi 中将 android-BluetoothChat 连接到 bluez