我试图建立一个基本的登录系统,可以登录或注册用户,并将信息存储在文本文件中。然而,作为一个初学者,我面临着一个我找不到任何解决方案的问题。
所以我定义了我想做的类和函数:
class User():
def __init__(self, username, password, email):
self.username = username
self.password = password
self.email = email
def login(self, username, password):
self.username = input("Enter username: ")
self.password = input("Enter password: ")
with open("register.txt", "r", encoding=utf-8) as file:
if username == username and password == password:
print("login successful!")
def register(self, username, password, email):
self.username = input("Enter username: ")
self.password = input("Enter password: ")
self.pass_check = input("Enter password: ")
self.email = input("Enter email: ")
if password == pass_check:
print("Password match, you can login")
with open("register.txt", "a", encoding=utf-8) as file:
file.write('Username:', username+' ', 'Password:',
password+' ', 'email:', email)
else:
print("passwords don't match")其次,添加了使用这些函数的简单代码:
choice = int(input("1-Login 2-Register"))
if choice == 1:
User.login()
elif choice == 2:
User.register()当我运行这段代码时,我得到了这个错误:
Traceback(most recent call last):
File "c:/Users/ASUS/Desktop/Python Projects/login-oop.py", line 32, in <module > User.login()
TypeError: login() missing 3 required positional arguments: 'self', 'username', and 'password'我找了几个小时,我认为这是非常基本的,但我找不到任何解决方案。
发布于 2020-05-14 04:07:45
在下面的代码中,您调用了User.login(),但在您的方法定义中,您使用了def login(self, username, password)。您需要将username和password参数传递给User.login()。
choice = int(input("1-Login 2-Register"))
if choice == 1:
User.login()
elif choice ==2:
User.register()发布于 2020-05-14 04:10:00
您的登录函数需要两个参数。您没有提供任何内容。你需要这样的东西:
""" declared some instance of a User as my_user somewhere else in the code """
username = 'some username'
password = 'password'
my_user.login(username, password)发布于 2021-10-04 13:16:50
为了使你的代码有用,你应该使用你的属性(用户名,密码等)。作为私有属性的 by:
self.nameProperty = namePropertyhttps://stackoverflow.com/questions/61783738
复制相似问题