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

2024-06-26 00:00:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个名为Earthquake的类,它在类变量中存储相关的地震数据(震级、地震发生的时间等)。我想询问用户希望看到哪些数据,然后按如下方式打印这些数据:

earthquake1 = Earthquake()

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

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

有什么办法吗


Tags: 数据用户answeryouinputdata方式时间
2条回答

只需使用^{}

earthquake1 = Earthquake()

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

您可以使用getattr,它相当于earthquake.attr_name。不同之处在于getattr允许您使用变量访问名称,如果找不到,则提供默认值

简而言之:

 print(getattr(earthquake1, answer))

或者,如果需要使用默认值而不是引发KeyError

print(getattr(earthquake1, answer, "Instance variable {} not found".format(answer)))

相关问题 更多 >