Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将用户输入的(字符串)函数转换为数学模块_Python_Python 3.x - Fatal编程技术网

Python 如何将用户输入的(字符串)函数转换为数学模块

Python 如何将用户输入的(字符串)函数转换为数学模块,python,python-3.x,Python,Python 3.x,除了我先前回答的问题之外,还有一个新的相关问题: 如何将用户输入的超越函数“附加”到数学上。python可以以通常方式使用的前缀(math.user_fn)?抱歉,作为初学者,我不确定我使用的确切术语,但我想我是在问在这种情况下如何更改对象类型? e、 g 这样我就可以计算如下: math.v1(2.3) 你不能用通常的方式(即点访问)来做这件事。您可以使用getattr获取并即时调用它。事实上,math.v1将对模块对象执行\uuu getattribute\uuu调用,并查找一个属性,该

除了我先前回答的问题之外,还有一个新的相关问题:

如何将用户输入的超越函数“附加”到数学上。python可以以通常方式使用的前缀(math.user_fn)?抱歉,作为初学者,我不确定我使用的确切术语,但我想我是在问在这种情况下如何更改对象类型? e、 g

这样我就可以计算如下:

math.v1(2.3) 

你不能用通常的方式(即点访问)来做这件事。您可以使用
getattr
获取并即时调用它。事实上,
math.v1
将对模块对象执行
\uuu getattribute\uuu
调用,并查找一个属性,该属性的名称不是
v1
的值,而是字符串
'v1'
本身

这是失败的,没有办法改变它

您只需选择
getattr
,这支持动态属性获取:

getattr(math, v1)(2.3)
这将尝试获取一个属性,该属性的名称等于
v1
的值,然后立即调用它。这是一个较短的版本,用于:

func = getattr(math, v1)
func(2.3)

接受的答案使用getattr。可能是的重复项
func = getattr(math, v1)
func(2.3)