我创建了一个名为Earthquake
的类,它在类变量中存储相关的地震数据(其大小,命中时间等)。我想询问用户他们想要查看哪些数据,然后为他们打印出这样的数据:
earthquake1 = Earthquake()
answer = input("What data would you like to see?")
print(earthquake1.answer)
在上面的示例中,如果用户回答magnitude
,我想打印出类变量earthquake1.magnitude
。
有没有办法做到这一点?
答案 0 :(得分:4)
只需使用getattr
:
earthquake1 = Earthquake()
answer = input("What data would you like to see?")
print(getattr(earthquake1, answer))
答案 1 :(得分:2)
您可以使用等同于getattr
的{{1}}。不同之处在于earthquake.attr_name
允许您使用变量来访问名称,并在未找到时提供默认值。
简而言之:
getattr
或者,如果您需要使用默认值而不是引发 print(getattr(earthquake1, answer))
:
KeyError