Python 3.x 即使我有正确的密码,为什么with code不允许我进入?
我正在做一个密码和用户名登录的东西。我已经用OOP(面向对象编程)来实现这一点,但它不会给我正确的结果 更多信息在代码中Python 3.x 即使我有正确的密码,为什么with code不允许我进入?,python-3.x,Python 3.x,我正在做一个密码和用户名登录的东西。我已经用OOP(面向对象编程)来实现这一点,但它不会给我正确的结果 更多信息在代码中 class Login: def __init__(self, uid, password): self.uid = "admin" self.password = "admin" def authenticate(self): if self.uid == logid
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()
您需要将变量传递给类
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 )
您需要将变量传递给类
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 )
您的
\uuuu init\uuuu
方法正在忽略传递给它的uid
/密码。它只是将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)
您的\uuuu init\uuuu
方法正在忽略传递给它的uid
/密码。它只是将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)
密码应该是“admin”还是“pass”?您正在执行的是self.uid=“admin”
,因此无论您向Login()
传递什么,都将被忽略,并且类中的uid
设置为“uid”
。密码应该是“admin”还是“pass”?您正在执行的是self.uid=“admin”
,因此,将忽略传递给Login()
的任何内容,并将类中的uid
设置为“uid”
。