2015-05-27 29 views
-2

所以我創建了三個python文件,我們稱它們爲p1,p2和p3。 p1和p2都需要p3,p1需要導入p2。我想知道是否有一種方法可以省略在p2中導入p3,因爲我已經在p1中導入了p3,並且在p1中導入了p2。如何在Python中進行全局導入?

p1,p2和p3都包含函數和類。

編輯:

在P1我這樣做:

import p3 as p 

和P2我打電話從對一些功能的使用p.somefunction但它拋出一個全局命名 'P' 沒有找到。

+1

導入*爲*全局 - 當您再次導入同一個模塊時,它只是查找而不是實際重新加載。但是,您需要在每個需要它們的文件中指定相關輸入。 – jonrsharpe

+0

如果已經導入了某個東西,它將不會被再次導入,但是很多時候你會調用'import [module name]' – Holloway

+0

爲什麼你認爲你需要這樣做? – IanAuld

回答

1

可以省略p1進口p3,因爲你可以通過在文件中做p2.p3訪問導入的版本p1

也有是在進口無妨,因爲你第二次導入模塊,它只會考慮已經導入的內存。

+2

但是請注意,這會強制'p1'取決於'import p3' in' p2' - 如果'p2'中的導入改爲別名('import p3 as foo')或選擇中斷'p1'的特定名稱('from p3 import bar')。 – jonrsharpe