具有许多属性的python类

时间:2011-03-12 00:25:52

标签: python class

我正在尝试创建一个具有大量属性的类(大约10个)。是否有更漂亮(更Pythonic)的方式来启动课程:

class myClass:
def __init__(self,atributeA,atributeB,atributeC)
   self.atributeA=atributeA
   self.atributeB=atributeB
   self.atributeC=atributeC

是否有更好的方法来创建类实例而不是

thisInstance=myClass(valueA,valueB,valueC)

4 个答案:

答案 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())