我正在编写一个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