2017-05-27 110 views

回答

3

不,不要求不同級別的名稱必須不同。每個級別都是一個獨立的名稱空間。如果foo.utilsfoo.bar.utils在您的項目中有意義,那麼就這樣做。

例如,Python標準庫有email.messageemail.mime.message,並multiprocessing.connection,以及multiprocessing.dummy.connection,還有更多:

$ ls ~/Development/Library/cpython/Lib/**/*.py | grep -v __ | grep -v test_ | xargs basename | sort | uniq -c | grep -v ' 1 ' | sort 
    2 abc.py 
    2 ascii.py 
    2 client.py 
    2 connection.py 
    2 constants.py 
    2 dump.py 
    2 errors.py 
    2 filelist.py 
    2 handlers.py 
    2 log.py 
    2 message.py 
    2 parse.py 
    2 parser.py 
    2 process.py 
    2 queues.py 
    2 server.py 
    2 spawn.py 
    2 text.py 
    2 tree.py 
    3 main.py 
    4 config.py 
    5 support.py 
    6 util.py 

這是出現包裝內,出現一次以上,排除測試的所有模塊,__init__.py__main__.py

0

由於軟件包基於文件系統,因此無法在正常情況下使用相同的軟件包,因爲文件/目錄沒有重複。

當然,您可以擁有相同的命名空間包。

也可以在不同路徑中具有相同的程序包/模塊名稱。他們按順序搜索,所以第一場勝利。

相關問題