python的构造函数传入任意数量的参数

通过 setattr() 绑定属性。

class Person(object):

    def __init__(self, name, gender, **kw):
        self.name=name
        self.gender=gender
        for k,v in kw.iteritems():
            setattr(self,k,v)

p = Person('Bob', 'Male', age=18, course='Python')
print p.age
print p.course

 

或者

class Person(object):

    def __init__(self, name, gender, **kw):
        self.name=name
        self.gender=gender
        self.__dict__.update(kw)

p = Person('Bob', 'Male', age=18, course='Python')
print p.age
print p.course

 

posted @ 2017-06-01 11:15  WhatTTEver  阅读(5512)  评论(0编辑  收藏  举报