[英]Python - 'module' object is not callable returned when calling function
我对Python很陌生,只是学习它,而我在运行函数时遇到了麻烦。 我在Matlab方面有一定的背景知识,所以这可能是我有些困惑的来源。
这是我在PC上使用Notepad ++在脚本中编写的代码:
def print_order_numbers(amount):
i = 0
numbers = []
while i < amount:
print("At the top i is %d" %i)
numbers.append(i)
i = i + 1
print ("Numbers now: ", numbers)
print("at the bottom i si %d" %i)
print ("the numbers: ")
for num in numbers:
print (num)
然后在python中时,使用以下命令加载函数后:
from filename import print_order_numbers
但是,由于该函数本身不返回任何内容且未提供参数,因此它不执行任何操作。 因此,当我尝试调用该函数时,如下所示:
print_order_numbers(2)
它给了我错误回溯:NameError中的文件“”第1行:未定义名称“ print_order_numbers”
我发现如果将此调用与编写该函数的脚本放在相同的脚本中,则在导入该函数时,它将正确运行。 为什么我的函数被Python识别为模块,为什么在脚本中调用该函数有效?
有什么方法可以直接在python命令窗口中调用该函数,而不必将该调用放在函数所在的脚本中? Matlab的函数允许您执行此操作,并且如果我想从另一个脚本中调用一个函数,它将使事情变得容易得多。 (或者我只需要将该函数与调用它的其余代码放在同一脚本中?)
抱歉,如果这是一个基本问题,我只是希望更好地理解该主题,并且无法在我浏览的所有问题/教程中都找到直接的答案。 提前致谢!
文件的名称是print_order_numbers.py吗? 如果是这样,则需要更改名称。 解释器认为您指的是模块而不是功能。
如果不是,您可以尝试
import filename
filename.print_order_numbers(2)
失败的话,您需要像其他人所说的那样提供更多的背景信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.