2017-09-28 133 views
0

我有一個包,其中要這麼做:導入模塊功能的根 - 蟒蛇

from p1 import p1 
p1.cos(5) 

但是,想而不是寫:

import p1 
p1.cos(5) 

(如numpy的)

如何修改p1/__init__.py以啓用此「寫入」功能?

+1

請提供您的腳本的結構。 – Sraw

+0

我不確定這是可能的還是一個好主意;使用'from p1 import p1'告訴你明確你輸入的內容。誰讀取'import p1'假定您導入模塊,而不是從中導入特定功能。 **可讀性計數** – Vinny

回答

3

假設你有文件,就像

. 
`-- p1 
    |-- __init__.py 
    `-- p1.py 

和定義cosp1.py 然後p1/__init__.py,你可以把

from .p1 import cos 

如果cos來自其他地方,那麼就必須在任何地方p1/__init__.py進口它作爲適當的。例如。在p1/__init__.py,你可以很容易地把

from math import cos 
+0

這將從p1導入cos到導入代碼。模塊的其餘部分會發生什麼?它是否也是進口產品? – Vinny

+0

這取決於你實際放入'p1/__ init __。py'中的內容。您導入或分配的每個名稱都將成爲「p1」模塊的一部分。如果你有選擇性,那麼'p1'最終只會有幾件事情,但是如果在'p1/__ init __。py'中你做了一些像'從xxx import *'一樣馬虎的事情,那麼p1最終會有很多。 – jq170727

+0

Thx,這個工作很好! – Tensor

-1

張量

如何:

import p1 
p1.p1.cos(5) 

from p1 import * 
p1.cos(5)