将 Python 模块拆分为多个文件
Splitting Python module into many files
我的 Python 模块变得太大了。所以不是单个文件
paradigms.py
class Hub: ...
class Virement: ...
class Bond: ...
class Credit: ...
我想要一个目录 paradigms
,里面有两个文件:
transfer.py
class Hub: ...
class Virement: ...
credit.py
class Bond: ...
class Credit: ...
(当然,无论是文件个数,还是一个文件中类的个数,都要大得多。)
问题是我想像以前一样继续使用 paradigms
:
import paradigms
paradigms.Hub(...).clear()
或
from paradigms import Credit
甚至
from paradigms import *
所以,在某种程度上,我希望 transfer
和 credit
名称在外部接口中消失,而我的模块(我想现在它是一个包)出现在外部就像一个单一的模块。这可以相对容易地完成吗?
您可以创建一个 paradigms
包,其中包含您的两个模块 transfer.py
和 credit.py
,将它们的 类 导入到包中
__init__.py
中的级别:
paradigms/
__init__.py
credit.py
transfer.py
__init__.py
将是:
from credit import *
from transfer import *
然后你可以这样做:
import paradigms
paradigms.Bond
等等
我的 Python 模块变得太大了。所以不是单个文件
paradigms.py
class Hub: ...
class Virement: ...
class Bond: ...
class Credit: ...
我想要一个目录 paradigms
,里面有两个文件:
transfer.py
class Hub: ...
class Virement: ...
credit.py
class Bond: ...
class Credit: ...
(当然,无论是文件个数,还是一个文件中类的个数,都要大得多。)
问题是我想像以前一样继续使用 paradigms
:
import paradigms
paradigms.Hub(...).clear()
或
from paradigms import Credit
甚至
from paradigms import *
所以,在某种程度上,我希望 transfer
和 credit
名称在外部接口中消失,而我的模块(我想现在它是一个包)出现在外部就像一个单一的模块。这可以相对容易地完成吗?
您可以创建一个 paradigms
包,其中包含您的两个模块 transfer.py
和 credit.py
,将它们的 类 导入到包中
__init__.py
中的级别:
paradigms/
__init__.py
credit.py
transfer.py
__init__.py
将是:
from credit import *
from transfer import *
然后你可以这样做:
import paradigms
paradigms.Bond
等等