[英]How do I call a function inside a function?
import datetime
class User:
def __init__(self, username, mail, date_of_birth, gender, password):
self.username = username
self.mail = mail
self.date_of_birth = datetime.datetime.strptime(date_of_birth, "%d.%m.%Y").date()
self.gender = gender
self.password = password
def get_username(self):
return self.username
def get_mail(self):
return self.mail
def get_date_of_birth(self):
return self.date_of_birth
def get_gender(self):
return self.gender
def get_password(self):
self.password
def get_date(self):
return self.date_of_birth
log = ""
def login2(self):
global log
log = input("input your username: ")
if log == self.username:
pwrd = input("whats your password?")
if pwrd == self.password:
print("Logged in!")
@staticmethod
def login_or_register():
global log
log = input("login or register: ")
if log == "login" or "Login":
login2()
Matt = User("Matterson", "matt@gmail.com", "21.12.1999" ,"male", "Password987")
session1 = User.login_or_register()
So the login2() wont work for some reason.所以由于某种原因 login2() 不会工作。 Could someone help me out?
有人可以帮我吗?
I'm not sure of your intent, but you could make this a class method that creates an instance of its class.我不确定您的意图,但您可以将其设为创建其类实例的类方法。
@classmethod
def login_or_register(cls):
log = input("login or register: ")
if log == "login" or "Login":
user = cls()
user.login2()
return user
But from the way you use it但从你使用它的方式来看
Matt = User("Matterson", "matt@gmail.com", "21.12.1999" ,"male", "Password987")
session1 = User.login_or_register()
I think it should just be a regular method我认为它应该只是一种常规方法
def login_or_register(self):
log = input("login or register: ")
if log == "login" or "Login":
self.login2()
You can't call an instance method from a class method.不能从类方法调用实例方法。 Login2 can be an instance method as well.
Login2 也可以是一个实例方法。 Then instead of calling it statically, call it on the Matt instance as follows.
然后不是静态调用它,而是在 Matt 实例上调用它,如下所示。
import datetime
class User:
def __init__(self, username, mail, date_of_birth, gender, password):
self.username = username
self.mail = mail
self.date_of_birth = datetime.datetime.strptime(date_of_birth, "%d.%m.%Y").date()
self.gender = gender
self.password = password
def get_username(self):
return self.username
def get_mail(self):
return self.mail
def get_date_of_birth(self):
return self.date_of_birth
def get_gender(self):
return self.gender
def get_password(self):
self.password
def get_date(self):
return self.date_of_birth
log = ""
def login2(self):
global log
log = input("input your username: ")
if log == self.username:
pwrd = input("whats your password?")
if pwrd == self.password:
print("Logged in!")
def login_or_register(self):
global log
log = input("login or register: ")
if log == "login" or "Login":
self.login2()
Matt = User("Matterson", "matt@gmail.com", "21.12.1999" ,"male", "Password987")
session1 = Matt.login_or_register()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.