因此,我要求用户输入。然后,将输入分配给变量var,以将其用于数学模块:
var = "pi"
print(math.var)
但是随后出现属性错误。我该如何解决这个问题?
答案 0 :(得分:2)
您会收到一个属性错误,因为Python会尝试访问var
模块的math
属性,该属性不存在。它不会尝试将var
评估为变量。
假设var
是math
模块的某个成员(或其他模块或对象)的名称,则可以使用内置的getattr
来获取值该属性。
>>> var = "pi"
>>> getattr(math, var)
3.141592653589793
答案 1 :(得分:0)
您可以为此使用getattr()
。在这里,我们一直在向用户询问math
的属性,直到他提供现有属性为止。
import math
inp = input('Enter math attribute: ')
while not getattr(math, inp, None):
inp = input('Please enter valid attribute: ')
print(getattr(math, inp))
输出:
python3 get_math.py
Enter math attribute: adc
Please enter valid attribute: pi
3.141592653589793
答案 2 :(得分:0)
检查工作正常:
import math
var = 'pi'
print(math.__getattribute__(var))
输出:
3.141592653589793