我正在編寫一個python腳本,將各種文件中的數據收集到具有多個屬性的對象中。 這些屬性中的每一個基本上都可以是「好」,「壞」或「不適用」。 其中的屬性是「N/A」根據我調用腳本的參數而改變。Python - 通過字典更改屬性
我想要做的是默認啓動所有這些屬性都設置爲「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
我在做什麼錯了,我怎麼能做到這一點嗎?
你的'unused_dic'沒有連接到'blurb'。你只需要創建一個新的字典,設置值,然後再對這個新字典做任何事情。 – sloth