在Python包中混合函数和子包

在Python包中混合函数和子包,python,python-module,Python,Python Module,有没有办法在我的Python包中混合子包和函数 目前,我的布局大致如下: lib/ __init__.py Transform.py Statistic.py 其中Transform.py和Statistic.py分别包含多个函数。为了使用它们,我做了一些 from lib import Transform Transform.fft(signal); 现在,我希望能够在Transform中的包中包含一个函数: from lib.Transform import bins

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

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

lib/
   __init__.py
   Transform.py
   Statistic.py
其中
Transform.py
Statistic.py
分别包含多个函数。为了使用它们,我做了一些

from lib import Transform

Transform.fft(signal);
现在,我希望能够在
Transform
中的包中包含一个函数:

from lib.Transform import bins

Transform.bins.extent(signal);
这可能吗?我必须如何定义我的包才能做到这一点?

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

lib/
  __init__.py
  Statistic.py
  Transform
    __init__.py
    bins.py
在这种情况下,
Transform.fft
进入
lib/Transform/\uuu init\uuuuuuuuuuuuuupy
Transform.bins.extent
内部
lib/Transform/bins.py

解决方案#2:如果您希望保持
\uuu init\uuuuuuuuuuuuuuupy
简洁,您还可以创建一个单独的Python模块(如
fft.py
)并将其导入
\uuuuuuuuuuuuuuuuuuuuupy
,如下所示:

from fft import *
在这种情况下,您还可以使用:

from lib.Transform import fft
解决方案#1:尝试以下布局:

lib/
  __init__.py
  Statistic.py
  Transform
    __init__.py
    bins.py
在这种情况下,
Transform.fft
进入
lib/Transform/\uuu init\uuuuuuuuuuuuuupy
Transform.bins.extent
内部
lib/Transform/bins.py

解决方案#2:如果您希望保持
\uuu init\uuuuuuuuuuuuuuupy
简洁,您还可以创建一个单独的Python模块(如
fft.py
)并将其导入
\uuuuuuuuuuuuuuuuuuuuupy
,如下所示:

from fft import *
在这种情况下,您还可以使用:

from lib.Transform import fft

啊!!我以为
\uuuu init\uuuuuuy.py
只适用于
\uuuuu all\uuuuuuuu=[…]
之类的东西。不,它适用于所有代码。但是,按照惯例,您可能不希望在
\uuuu init\uuuuuuuy.py
中放入太多内容。详情请参见编辑。啊!我以为
\uuuu init\uuuuuuy.py
只适用于
\uuuuu all\uuuuuuuu=[…]
之类的东西。不,它适用于所有代码。但是,按照惯例,您可能不希望在
\uuuu init\uuuuuuuy.py
中放入太多内容。有关详细信息,请参见编辑。