我指的是this question从另一个Python文件调用Python函数。
所以我在同一个文件夹中有2个Python脚本:myFunc.py
和caller.py
。
首先,我在myFunc.py
中定义了一个简单的函数,如下所示:
def mySqrt(x):
return x**2
...然后我尝试在我的caller.py
中使用此功能,如下所示:
import myFunc as mySqrt
a = mySqrt(2)
print(a)
...但它返回:
'module'对象不可调用
...执行脚本caller.py
时。
我在这里做错了什么?
答案 0 :(得分:2)
import myFunc as mySqrt
导入模块并为其指定不同的名称。
from myFunc import mySqrt
答案 1 :(得分:2)
正如您提到的问题所述:
from myFunc import mySqrt
as
用于为模块创建alias
,因此您可以缩短输入内容,如下例所示:
from myFunc import mySqrt as ms
a = ms(2)
print(a)
#4
答案 2 :(得分:2)
from myFunc import mySqrt
import <module> as <module_alias>
强> 此指令以<module>
名称导入<module_alias>
。
因此,import myFunc as mySqrt
会以名称myFunc
导入模块mySqrt
,这不是您想要的!
from <module> import <function>
强> 此说明从<function>
导入<module>
。
因此from myFunc import mySqrt
会从您的模块mySqrt()
导入函数myFunc
,这是您正在寻找的行为。
答案 3 :(得分:2)
您为导入提供的别名与您要调用的函数同名。尝试:
from myFunc import mySqrt
或者,如果您想保持相同的格式,请尝试:
import myFunc as mf
a = mf.mySqrt(2)
print(a)