【发布时间】:2021-06-22 05:01:22
【问题描述】:
我正在尝试使用getattr 打印出result1.key 和result2.key。但是我无法让最后一个打印功能起作用。我收到错误:NameError: name 'key' is not defined。我怎样才能使打印功能print(getattr(result1, key)) print(getattr(result2, key)) 工作以获得预期输出?
results = ["result1", "result2"]
valuelist1 = [3, 5]
valuelist2 = [10, 6]
def func(val, val2):
return val* val2 + val2/2
class Dummy:
def __init__(self, val, val2):
self.key = func(val, val2)
for counter, runs in enumerate(results):
dummy = Dummy(valuelist1[counter], valuelist2[counter])
globals()[runs] = dummy
print(result1.key)
print(result2.key)
for name in results:
print(getattr(name, "key"))
预期输出:
35.0
33.0
35.0
33.0
【问题讨论】:
-
你需要在引号之间加上
key! -
对不起,我更新了应该在 for 循环中的问题
标签: python-3.x function class for-loop global