繁星点点滴滴
我提出了fqxp答案的一种变体,除了允许的属性外,还可以让您设置属性的默认值:class Foo(): def __init__(self, **kwargs): # define default attributes default_attr = dict(a=0, b=None, c=True) # define (additional) allowed attributes with no default value more_allowed_attr = ['d','e','f'] allowed_attr = list(default_attr.keys()) + more_allowed_attr default_attr.update(kwargs) self.__dict__.update((k,v) for k,v in default_attr.items() if k in allowed_attr)这是Python 3.x代码,对于Python 2.x,您需要至少进行一次调整,iteritems()以代替items()。