如何根据用户输入更改调用哪个类变量?

时间:2016-08-29 03:19:09

标签: python class python-3.x class-variables

我创建了一个名为Earthquake的类,它在类变量中存储相关的地震数据(其大小,命中时间等)。我想询问用户他们想要查看哪些数据,然后为他们打印出这样的数据:

earthquake1 = Earthquake()

answer = input("What data would you like to see?")
print(earthquake1.answer)

在上面的示例中,如果用户回答magnitude,我想打印出类变量earthquake1.magnitude

有没有办法做到这一点?

2 个答案:

答案 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