Python - 调用函数时返回的'module'对象不可调用

时间:2015-03-23 21:27:56

标签: python function module

我对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)

它给了我错误回溯: 文件“”,第1行,in NameError:未定义名称'print_order_numbers'

我发现如果我把这个调用放在与编写函数相同的脚本中,当我导入函数时,它会正确运行它。为什么我的函数被Python认为是一个模块,为什么在脚本中调用函数呢?

有没有办法在python命令窗口中直接调用该函数而不必将调用放在函数所在的脚本中? Matlab的函数允许你这样做,如果我想从另一个脚本调用一个函数,它会使事情变得容易很多。 (或者我只需要在与调用它的其余代码相同的脚本中使用该函数吗?)

很抱歉,如果这是一个基本问题,我只是希望更好地理解这个主题,并且无法在我查看的所有问题/教程中找到一个直接的答案。提前谢谢!

1 个答案:

答案 0 :(得分:0)

您的文件名称是print_order_numbers.py吗?如果是这样,您需要更改名称。解释器认为你指的是模块而不是函数。

如果不是,你可以试试


import filename
filename.print_order_numbers(2)

如果做不到这一点,你需要提供更多的背景,正如其他人所说的那样。