不确定这是否是推荐的在 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)
所以问题是,我如何避免繁琐的第一种方法,其中每个属性的行都是硬编码的,但仍然可以方便地引用属性而不必知道/记住它在列表中的位置?
希望这更清楚。
谢谢
PS我正在使用Python 3