根据用户需求更改子类self.variables的数量

Change quantity of self.variables in subclass based on user's demand

我可以根据用户需要更改子class 对象中的变量吗?如果是这样,如何,或者是否有不同的方法?

我希望子class 变量列表根据用户的需求增加大小,而无需在 init 中预先编写 *self.*变量,并允许用户列出清单。

如何处理子class中长度不断变化的列表?

class MyClass(object): 
    def __init__(self, list1, list2): # list 1: keys; list 2: values

        len1 = len(list1) # Changing range based on desired keys
        for i in range(len1): 

             self.list1[i] = list2[i] # desired effect

List1 = ['first','second','third']; List2 = [1,2,3];
print(MyClass(List1,List2))
List1.append('fourth'); List2.append(4)
print(MyClass(List1,List2))

期望的输出是 [[getattr(item, x) for x in list1] for item in list2] returns 第一个实例有 3 个值,第二个实例有 4 个值。

我在这个 class 的实例上尝试 getattr(item, x) 时收到的错误是 AttributeError: 'MyClass' object has no attribute <key>,其中 <key> 是 list1,而不是 list1 中的值。

我的解决方法是预先填充字段,如下所示:

import re

kLs = ("the", "list", "of", "new", "caught", "values")

let = ['a','b','c','d','e','f']
reAN = re.compile("\w+")
for k in kLs: print('self.'+reAN.search(re.sub(r"\s+", "", k)).group()+' = '+let[kLs.index(k)])

每次我想减去或添加一个变量时我都必须这样做。这行不通。任何人?

Same as always:

MyClass(*space)