gpt4 book ai didi

python - 使用装饰器或元类为所有类设置公共(public)实例变量

转载 作者:行者123 更新时间:2023-11-30 21:58:08 24 4
gpt4 key购买 nike

我有一个场景,其中 A 类使用参数 id、name、email、ticket 进行初始化。然后类 B 在类 A 的方法内初始化,并且需要传递相同的参数,依此类推。可以在类声明期间使用装饰器或元类设置这些公共(public)属性吗?

class A:
def __init__(self, id, name, email, ticket):
self.id = id
self.name=name
self.email=email
self.ticket=ticket

def __somefunc(self):
# do something
b = B(self.id, self.name, self.email, self.ticket)
b.__dosomething()

同样...C类等等..我发现将所有这些重复的参数发送到所有后续类有点不合适。

最佳答案

如果您只是想减少键入的字符数(出现在代码中),请为这些值创建一个字典,并用它实例化其他类。

Class A:
def __init__(self, id, name, email, ticket):
self.id = id
self.name=name
self.email=email
self.ticket=ticket
self.params = {'id':id, 'name':name, 'email':email, 'ticket':ticket}

def __somefunc(self):
# do something
b = B(**self.params)
b.__dosomething()
<小时/>

可以在类声明期间使用装饰器或元类设置这些公共(public)属性吗??是的,也许是。

关于python - 使用装饰器或元类为所有类设置公共(public)实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55030996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com