Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python—“模块”对象在调用函数时不可调用_Python_Function_Module - Fatal编程技术网

Python—“模块”对象在调用函数时不可调用

Python—“模块”对象在调用函数时不可调用,python,function,module,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)

我对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)
但是,因为函数本身不返回任何内容,也没有给出参数,所以这不起任何作用。因此,当我尝试调用函数时,如下所示:

print_order_numbers(2)
它提供了错误回溯: 文件,第1行,在 名称错误:未定义名称“打印订单编号”

我发现,如果我把这个调用放在编写它的函数的同一个脚本中,当我导入函数时,它会正确地运行它。为什么Python会将我的函数识别为一个模块,为什么在脚本中调用函数会起作用

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


很抱歉,如果这是一个基本问题,我只是想更好地理解这个主题,在我看过的所有问题/教程中都找不到一个直接的答案。提前谢谢

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

如果不是这样,你可以试试


import filename
filename.print_order_numbers(2)

否则,您需要像其他人所说的那样提供更多的上下文。

您有一个名为“打印订单编号”的模块,请尝试打印打印订单编号。\文件\uuu请回答您的问题,并发布您得到的任何回溯或错误的全文。导入时是否没有错误?只有在电话里。目录中是否有一个_uinit_uuu.py?我不应该在与此函数所在的脚本相同的文件/目录中有一个init.py。虽然我知道它将模块和包分开,但我真的不知道这是什么,你能@PaulRooney帮我解决这个问题吗?导入文件后使用“file.filename.print\u order\u numbers2”有效。但是为什么您认为使用“fromfileimportfilename”然后调用函数“print\u order\u numbers2”不起作用?它给我的回调错误名称“print\u order\u numbers”未定义。谢谢

import filename
filename.print_order_numbers(2)