【发布时间】:2016-03-06 00:25:26
【问题描述】:
在我的对象的初始化中,我想从一个可迭代对象中创建对象属性。例如:
class MyClass(object):
def __init__(self, parameters):
attributes = ['name',
'memory',
'regressors',
'use_const']
for attr_name in attributes():
try:
attr_val = parameters[attr_name]
except KeyError:
raise Error("parameters must contain {}".format(attr_name))
setattr(self, attr_name, attr_val)
这让我得到我想要的属性。但是,与定义相比,我失去了什么
@property
def name(self):
"""str: This class' name"""
return self._name
是我现在没有得到属性的文档字符串。
我想要每个属性的文档字符串(用于我的自动生成的文档),但我也想使用可迭代的而不是必须单独定义每个属性。比如可以把attributes转成以docstring为值的dict,动态设置属性的docstring吗?
我的蛋糕也可以吃吗?
【问题讨论】:
标签: python python-2.7 oop object