我一直在尋找這個很久沒有找到任何東西。我是一位經驗豐富的程序員,但最近轉向了Python。如何爲直觀命名設置python包/模塊目錄和類定義
總之,我想擴大/發展相關類的面向對象的庫與多個獨立的文件(由於複雜性和增加的模塊的慾望)命名空間:
目前,我可能有:
# file lib/NameSpace.py
class Foo(object):
def __init__(self):
....
class Bar(object):
def __init__(self):
....
class Baz(object):
def __init__(self):
....
而與此我的程序可以做到這一點:
import NameSpace
a = NameSpace.Foo()
b = NameSpace.Bar()
現在,這些類是越來越複雜和Foo和酒吧functionall雖然y在概念性名稱空間中有所不同,但我想將它們移動到名稱空間內的單獨文件中,但否則會使我的代碼庫保持不變。
所以,我想我要的文件結構是這樣的:
lib/NameSpace
lib/NameSpace/__init__.py
lib/NameSpace/Foo.py
lib/NameSpace/Bar.py
lib/NameSpace/Baz.py
但這需要我改變所有運行時代碼初始化這些像這樣:
import NameSpace.Foo
a = NameSpace.Foo.Foo()
# ***Boo.**** Why u not like 'a = NameSpace.Foo()'?
那麼,如何我的結構是這些東西,不必將'Foo'類名添加到模塊'Foo'中?通過編輯INIT的.py是一個工廠,像這樣我可以做到這一點:
#lib/NameSpace/__init__.py
import NameSpace.Foo as NSF
def Foo(*args, **kwargs):
return(NSF.Foo(*args,**kwargs))
但是,這似乎只是多不雅,比我從Python的期待。有沒有更好的方法來做到這一點?
完美。謝謝! – Kevin