首页 > 解决方案 > “'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')

标签: python

解决方案


一个类的实例一次只能将一个事物分配给一个给定的名称。在这种情况下,您的班级有两个:

  • login()创建类时添加的方法
  • 变量,它在运行login时覆盖上面的内容。__init__()

您需要将方法或变量重命名为其他名称,以便它们可以和平共存。


推荐阅读