python - 在另一个类中创建一个类对象
问题描述
我正在尝试创建一个类对象并在类对象中Credentials
执行该方法:get_username_password
Session
class Credentials:
def __init__(
self,
username=None,
password=None,
client_id=None,
client_secret=None):
self.username = username
self.password = password
self.client_id = client_id
self.client_secret = client_secret
def get_username_password(self):
self.username = input("please enter your username: ")
self.password = input("please enter your password: ")
class Session:
def __init__(
self):
self.credentials = Credentials()
self.credentials = self.credentials.get_username_password()
if __name__ == "__main__":
a = Credentials()
a.get_username_password()
b = Session()
如果我用b
,b.credentials
是一个None
类型对象。
解决方案
你好,史蒂芬。我希望你一切都好。
您的问题的症结在于您正在实例化两个单独的Credentials
对象。您实例a
化为一个Credentials
对象,然后在该对象中实例化一个SEPARATECredentials
Session
对象。
我知道有几个解决这个问题的方法。
1. 将凭证对象作为初始化参数传递给 Session 对象。
class Credentials:
def __init__(
self,
username=None,
password=None,
client_id=None,
client_secret=None):
self.username = username
self.password = password
self.client_id = client_id
self.client_secret = client_secret
def get_username_password(self):
if not self.username:
self.username = input("please enter your username: ")
if not self.password:
self.password = input("please enter your password: ")
class Session:
def __init__(
self,
credentials=None):
if credentials:
self.credentials = credentials
else:
self.credentials = Credentials()
if not (credentials.username and credentials.password):
self.credentials.get_username_password()
if __name__ == "__main__":
a = Credentials()
b = Session(credentials=a)
2. 用 ** 创建一个单例类Credentials
。这意味着您只有一个代表整个类的对象。换句话说,无论您在哪里实例化它,您都可以访问相同的单个Credentials
属性实例。如果您想进一步调查,这里有一个教程。我不认为这是你想要达到的目标。**
3. 可能还有其他选择。我并不精通所有方法。
我希望这有帮助!祝你好运!
推荐阅读
- php - 如何根据用户类型设置验证语言 Laravel
- firebase - Flutter/Firebase:尝试从 Firebase 集合中获取数据
- python - 如何将 web 中的表格/数组以与出现的格式相同的格式导出为 csv/excel 文件?
- sql-server-2012 - MS SQL Server 2012 中 varchar 列中的值的舍入?
- canvas - 使画布背景具有透明矩形
- python - 如何按列中的值过滤数据框?
- git - 来自拉取请求的 Git 提交消息
- javascript - 如何获得具有透视的旋转图像的坐标?
- java - 如何获取画布顶部和底部的引用以进行动态定位?
- javascript - 获取包含某个标签的节点的子节点 - JavaScript