繁体   English   中英

Python-调用函数时无法返回“模块”对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM