[英]Importing names from another python file
我已經嘗試過使用Google搜索並在stackoverflow中進行搜索,但是我找不到這個簡單問題的答案,這個問題以前可能已經被問過很多次了
在文件f1.py中,我有
import numpy as np
在文件f2.py中,我有
import f1
class One:
mat = np.array([[1]]))
運行f2時,出現錯誤消息“ np”未定義。 我應該如何表達明顯的意圖? 為了說明背景,我正在編寫我的第一個不是玩具程序的python3程序。 f1代表實質代碼。 f2應該是一個單元測試程序。 但是,對python語法的一些基本誤解阻止了我的進步。 我以為f1的導入會將np帶入f2的命名空間,但似乎沒有。
我以為f1的導入會將np帶入f2的命名空間,但似乎沒有。
確實。 每個模塊都有自己的名稱空間,您必須顯式導入您依賴的所有模塊。 因此,如果f2.py
需要numpy
,則必須顯式導入它:
import numpy as np
import f1
class One:
mat = np.array([[1]]))
注意:導入f1也不直接注入f1中定義的任何其他名稱,因此,如果在f1中具有函數“ foo”,則在f2中,您將需要導入f1(如上例所示)並使用合格的名稱f1.foo()
或顯式地導入名稱“ foo”,即from f1 import foo
(但隨后您將只能訪問foo
,而不能訪問f1中定義的任何其他名稱)。
mat = np.array([[1]])
在此行中, np
不在本地名稱空間中,因為您尚未在本地名稱空間中導入np
。
因此,如果必須使用np,則應使用以下行:
mat = f1.np.array([[1]])
有關更多信息,請轉到此鏈接導入x和從x導入
您應該這樣導入np:
from f1 import np
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.