さまざまなファイルから多くの属性を持つオブジェクトにデータを収集するための Python スクリプトを作成しています。これらの各属性は、基本的に「ok」、「bad」、または「N/A」のいずれかです。どの属性が「N/A」であるかは、スクリプトを呼び出すパラメーターによって異なります。
私がやりたいことは、これらすべての属性をデフォルトで「OK」に設定してすべてのオブジェクトを開始し、測定されていないものを「N/A」に設定することです(N/Aのリストを返す関数によってチェックされます-属性)。(その後、ファイルからデータを収集して、「悪い」属性を「悪い」属性に設定します。)
私は辞書を介してそれを行うことができると思っていましたが、機能していないようです/属性にアクセスしていませんか?
class Myclass:
def __init__(self, ID):
self.ID = ID
self.at1 = "ok"
self.at2 = "ok"
self.at3 = "ok"
self.at4 = "ok"
# there are a LOT more of these attributes
def foo(unused):
for i in range(3):
blurb = Myclass(i)
unused_dic = {"at1":blurb.at1, "at2":blurb.at2,
"at3":blurb.at3, "at4":blurb.at4}
for key in unused:
unused_dic[key] = "N/A"
print blurb.ID, blurb.at1, blurb.at2, blurb.at3, blurb.at4
unused = ["at1","at3"] # this is returned by another function
foo(unused)
これの出力は次のとおりです。
0 ok ok ok ok
1 ok ok ok ok
2 ok ok ok ok
しかし、私は期待し、望んでいます:
0 N/A ok N/A ok
1 N/A ok N/A ok
2 N/A ok N/A ok
私は何を間違っていますか?どうすれば正しく行うことができますか?