簡體   English   中英

從另一個python文件導入名稱

[英]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.

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