簡體   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