2013-06-19 77 views
1

比方說,我有一個簡單的模塊(foo.py)像這樣:Python模塊的最佳做法

import os 
import sys 

THIS_IS_A_CONSTANT = sys.path 

def this_is_a_function(): 
    print os.name() 

現在,假設這是我import foo。現在我有以下幾點:

>>> dir(foo) 
['THIS_IS_A_CONSTANT', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'os', 'sys', 'this_is_a_function'] 

對我來說,它是分散和煩人,我可以訪問foo.osfoo.sys,因爲他們IMO不應由模塊foo出口。

我可以加del sysfoo.py的末尾,但是這被認爲是不好的做法?不幸的是,del os也無法完成。

+0

我其實更喜歡這個。如果導入foo的主模塊不需要os或sys,則不需要在那裏導入它們。 – imagineerThat

回答

0

如果真的困擾你,import sys as _sys等等。

+0

這並不會改變任何東西......'dir(foo)'只會包含_sys而不是 –

+0

當然,但模塊的用戶會知道它是一個實現細節,而不是模塊接口的一部分。 – kindall

0

這樣很好。否則,您可能需要很長的模塊,這些模塊依賴大量的導入,並且不跟蹤主函數中所需的所有導入。我真的沒有看到任何foo.py導出sysos的問題。