ユーザのニーズに基づいてサブクラスオブジェクトの変数を変更できますか?もしそうなら、どのように、あるいは別のアプローチがありますか?ユーザの要求に基づいてサブクラス内のself.variablesの数を変更する
に* self。*変数をあらかじめ書き込まなくても、ユーザーの要求に基づいてサブクラスの変数のサイズを拡大して、ユーザーがリストを作成できるようにします。
どのようにサブクラスの長さが変化するリストを扱うのですか?
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]
戻り最初のインスタンスのための3つの値と第二の例えば4つの値です。
このクラスのインスタンスで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)])
。これは動作しません。誰でも?
私は編集の数を作ったが、木曜日からの応答を受け取っていません。何らかの理由がありますか?あなたは少なくともあなたの保留を解除し、他の人々が応答できるようにすることはできますか?なぜこれが適切な質問ではないのかについては触れられていない。 – double0darbo