python - 如何在函数内部调用函数?
问题描述
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()
所以 login2() 出于某种原因无法工作。有人可以帮我吗?
解决方案
我不确定您的意图,但您可以将其设为创建其类实例的类方法。
@classmethod
def login_or_register(cls):
log = input("login or register: ")
if log == "login" or "Login":
user = cls()
user.login2()
return user
但从你使用它的方式来看
Matt = User("Matterson", "matt@gmail.com", "21.12.1999" ,"male", "Password987")
session1 = User.login_or_register()
我认为这应该只是一种常规方法
def login_or_register(self):
log = input("login or register: ")
if log == "login" or "Login":
self.login2()
推荐阅读
- suitecrm - 在 SuiteCRM 中,仪表板未显示在主页中
- colors - notepad++ 我想做所有我写的数字都有不同的颜色
- python - 如何实现一个与“标签”具有多对多关系的 Django 模型,但还要计算它被标记了多少次?
- ruby - 如何在 Ruby 中跨类使用用户输入?
- c++ - Ranges算法和std算法的区别
- python - 如何使用 python tkinter 将一个窗口调用到另一个窗口
- python - 我如何通过python解决线性方程的错误
- ansible - 如何在ansible playbook中为主机声明两个提示变量
- apache-kafka - Kafka 再平衡算法是否在主题之间保持平衡?
- git - 在 terraform 中使用 docker-compose.yml