#python-3.x
#python-3.x
Вопрос:
Я ввожу пароль и имя пользователя для входа в систему. Я создал ООП (объектно-ориентированное программирование), чтобы сделать это, но это не даст мне правильного результата.
Дополнительная информация в коде.
class Login:
def __init__(self, uid, password):
self.uid = "admin"
self.password = "admin"
def authenticate(self):
if self.uid == logid and self.password == logpass:
print("Login successful")
else:
print("Sorry, that was incorrect.")
login = Login("carolynlikesmath", "pass")
logid = input("Enter your user ID: ")
logpass = input("Enter your password: ")
login.authenticate()
Комментарии:
1. Должен ли пароль быть «admin» или «pass»?
2. Вы делаете
self.uid = "admin"
, поэтому все, что вы передаетеLogin()
, игнорируется , аuid
в классе установлено значение"uid"
.
Ответ №1:
вам нужно передать свои переменные в class
class Login:
def __init__(self, uid, password):
self.uid = "admin"
self.password = "admin"
def authenticate(self,logid ,logpass):
if self.uid == logid and self.password == logpass:
print("Login successful")
else:
print("Sorry, that was incorrect.")
login = Login("carolynlikesmath", "pass")
logid = input("Enter your user ID: ")
logpass = input("Enter your password: ")
login.authenticate(logid ,logpass )
Ответ №2:
Ваш __init__
метод игнорирует uid
/ password
, передаваемый ему. Это просто настройка self.uid
и self.password
оба параметра на «admin», независимо от того, что вы передаете при создании Login()
объекта.
Если вам нужны значения «по умолчанию» для этих параметров, задайте их в самой сигнатуре метода.
Кроме того, authenticate()
понятия не имеет о переменных logid
/ logpass
. Они находятся за пределами класса. Вам нужно передать их authenticate()
для проверки.
class Login:
def __init__(self, uid="admin", password="admin"):
self.uid = uid
self.password = password
def authenticate(self, logid, logpass):
if self.uid == logid and self.password == logpass:
print("Login successful")
else:
print("Sorry, that was incorrect.")
login = Login("carolynlikesmath", "pass")
logid = input("Enter your user ID: ")
logpass = input("Enter your password: ")
login.authenticate(logid, logpass)