'module' 调用同一文件夹中定义的另一个函数时对象不可调用
'module' object is not callable when calling another function defined in the same folder
我指的是 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)
...但是 returns:
'module' object is not callable
...当执行脚本 caller.py
时。
我做错了什么?
你有什么:
import myFunc as mySqrt
导入模块并给它一个不同的名称。
你想要:
from myFunc import mySqrt
如您提到的问题所述,使用:
from myFunc import mySqrt
as
用于为模块创建 alias
,因此您可以缩短输入,如下例所示:
from myFunc import mySqrt as ms
a = ms(2)
print(a)
#4
这是你应该拥有的:
from myFunc import mySqrt
解释:
import <module> as <module_alias>
此指令在名称 <module_alias>
下导入 <module>
。
因此 import myFunc as mySqrt
将导入名为 mySqrt
的模块 myFunc
,这不是您想要的!
from <module> import <function>
此指令从 <module>
导入 <function>
。
所以 from myFunc import mySqrt
将从您的模块 myFunc
中导入函数 mySqrt()
,这就是您正在寻找的行为。
您正在为您的导入指定一个与您要调用的函数同名的别名。尝试:
from myFunc import mySqrt
或者,如果您想保持相同的格式,请尝试:
import myFunc as mf
a = mf.mySqrt(2)
print(a)
我指的是 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)
...但是 returns:
'module' object is not callable
...当执行脚本 caller.py
时。
我做错了什么?
你有什么:
import myFunc as mySqrt
导入模块并给它一个不同的名称。
你想要:
from myFunc import mySqrt
如您提到的问题所述,使用:
from myFunc import mySqrt
as
用于为模块创建 alias
,因此您可以缩短输入,如下例所示:
from myFunc import mySqrt as ms
a = ms(2)
print(a)
#4
这是你应该拥有的:
from myFunc import mySqrt
解释:
import <module> as <module_alias>
此指令在名称 <module_alias>
下导入 <module>
。
因此 import myFunc as mySqrt
将导入名为 mySqrt
的模块 myFunc
,这不是您想要的!
from <module> import <function>
此指令从 <module>
导入 <function>
。
所以 from myFunc import mySqrt
将从您的模块 myFunc
中导入函数 mySqrt()
,这就是您正在寻找的行为。
您正在为您的导入指定一个与您要调用的函数同名的别名。尝试:
from myFunc import mySqrt
或者,如果您想保持相同的格式,请尝试:
import myFunc as mf
a = mf.mySqrt(2)
print(a)