在Python包中混合函数和子包

时间:2013-07-17 13:35:46

标签: python python-module

有没有办法在我的Python包中混合子包和函数?

目前,我的布局大致如下:

lib/
   __init__.py
   Transform.py
   Statistic.py

其中Transform.pyStatistic.py各包含多个函数。要使用它们,我会做类似

的事情
from lib import Transform

Transform.fft(signal);

现在我希望能够在Transform内的包中使用函数:

from lib.Transform import bins

Transform.bins.extent(signal);

这甚至可能吗?我如何定义我的包呢?

1 个答案:

答案 0 :(得分:1)

解决方案#1 :尝试以下布局:

lib/
  __init__.py
  Statistic.py
  Transform
    __init__.py
    bins.py

在这种情况下,Transform.fft进入lib/Transform/__init__.pyTransform.bins.extentlib/Transform/bins.py内的__init__.py

解决方案#2:如果您希望保持fft.py简洁和干净,您还可以创建一个单独的Python模块(如__init__.py)并将其导入{ {1}}如下:

from fft import *

在这种情况下,您还可以使用:

from lib.Transform import fft