簡體   English   中英

在Python上導入無法正常工作

[英]import on Python doesn't work as expected

盡管應該導入變量,但出現“未定義名稱X”的異常。

main.py

from config import *
from utils import *
say_hello()

utils.py

from config import *
def say_hello():
    print(config_var)

config.py

from utils import *
config_var = "Hello"

嘗試運行“ main.py”:

追溯(最近一次通話最近):在say_hello()中的文件“ main.py”,第3行,在say_hello中的文件“ C:\\ Users \\ utils.py”,第3行,print(config_var)NameError:名稱為“ config_var”沒有定義的

這里發生了什么? 為什么some_var無法從utils.py訪問?

您正在util中導入config和config中的util會導致此錯誤(創建交叉循環)。 from utils import *刪除config.py,然后嘗試。

在main.py中,您不需要from config import *除非您直接在main()中使用config中的變量

您還應該導入config.config_var,因為此變量屬於該特定模塊

您要創建許多import語句,也許可以嘗試以下操作,但是如果要在utils.py中傳遞參數,則需要在utils.py中定義一個參數。

在utils.py中,由於您要打印出適當的值,因此需要傳遞一個參數。在config.py中,您要定義一個值。 然后在main.py中,如之前討論的使用通配符運算符“ *”在這種情況下並不完全一樣,那么為了調用相應的函數,您需要通過其文件名來對其進行尋址

在utils.py中:

def say_hello(config_var):
    print(config_var)

在config.py中

config_var = "Hello"

然后在main.py中

import config as cn
import utils as ut
ut.say_hello(cn.config_var)

簽出此線程以了解如何編寫python模塊以及如何編寫python模塊/軟件包?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM