我正在尝试创建一个具有大量属性的类(大约10个)。是否有更漂亮(更Pythonic)的方式来启动课程:
class myClass:
def __init__(self,atributeA,atributeB,atributeC)
self.atributeA=atributeA
self.atributeB=atributeB
self.atributeC=atributeC
是否有更好的方法来创建类实例而不是
thisInstance=myClass(valueA,valueB,valueC)
答案 0 :(得分:2)
好吧,你可以使用关键字参数。它将如此简单:
thisInstance=myClass(atributeA=valueA, atributeB=valueB, atributeC=valueC)
这样做的一个优点是您可以按任何顺序传递值。
您根本不需要修改类定义。
答案 1 :(得分:1)
您也可以使用脏方法:
def __init__(self, *args, **kwargs):
self.__dict__.update(kwargs)
d = {"attributeA": "a", "attributeB": "b"}
c = MyClass(**d)
但请注意,dict中与您的类的重要属性同名的任何属性都将覆盖该重要属性。
编辑: 如果不理解,我的意思是不要这样做,除非你有一个很好的理由,你的班级不能被其他人滥用!
答案 2 :(得分:0)
您可以使用* args或** kwargs并使用您的参数发送元组或字典
答案 3 :(得分:0)
您可以使用以下内容进行初始化。
def __init__(self, attributeA, attributeB, attributeC)
vars(self).update(locals())