python中的自我语法

Ale*_*x S 4 python oop class

每当我定义一个有许多参数的类时,我经常会发现自己在做这样的事情

class myClass(object):
    def __init__(self,param1,param2,param3, ...):
         self.param1 = param1
         self.param2 = param2
         self.param3 = param3
 ...
Run Code Online (Sandbox Code Playgroud)

我的问题是:有没有更聪明的Pythonier方式呢?

谢谢,亚历克斯.

scr*_*pts 9

您可以接受可变数量的命名参数并自动设置它们,如下所示:

class MyClass(object):
    def __init__(self, **kwargs): # variable named arguments
        for k, v in kwargs.items():
           setattr(self, k, v) # set the value of self.k to v, same as self.k = v


test = MyClass(param1="param1", param2="param2")
print test.param1 # "param1"
Run Code Online (Sandbox Code Playgroud)

setattr文档