不确定这是否是Python中推荐的方法。我有一个类有很多属性,就像这样
class MyClass:
def __init__(self):
self.attr1 = "first_value"
self.attr2 = "second_value"
...
但是,这很乏味,我希望能够在一个循环中完成:
self.attr_list = ["attr1", "attr2", "another_attr",...]
def __init__(self, values_list):
self.attr_values = [some_func(i) for i in values_list]
但我以后也要这样称呼这些值:
foo = MyClass(values_list)
...
bar = foo.attr1
myFunc(foo.another_attr, ..., some_other_parameters)
所以问题是,我如何避免冗长的第一种方法,即每个属性的行都是硬编码的,但仍然可以方便地引用属性,而不必知道/记住它在列表中的位置?你知道吗
希望这更清楚。你知道吗
谢谢
另外,我用的是python3
我不确定我是否理解这个问题。你在找setattr吗?像这样:
你可以这样使用它:
我不认为使用
setattr
本身是错误的,但是我建议改用字典,因为您可能会意外地覆盖其他属性,例如:相关问题 更多 >
编程相关推荐