如何从 python 中的包中导入所有函数?
How do I import all functions from a package in python?
我有一个这样的目录:
python_scripts/
test.py
simupy/
__init__.py
info.py
blk.py
'blk.py' 和 'info.py 是包含多个函数的模块,其中之一是函数 'blk_func(para)'.
在“__init__.py”中,我包含了以下代码:
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
file_lst = os.listdir(dir_path)
filename_lst = list(filter(lambda x: x[-3:]=='.py', file_lst))
filename_lst = list(map(lambda x: x[:-3], filename_lst))
filename_lst.remove('__init__')
__all__ = filename_lst.copy()
我想在 'test.py' 中访问函数 'blk_func(para)' 以及程序包中的所有其他函数。因此,我通过将以下代码行放入 'test.py':
来导入包
from simupy import*
但是,为了使用该功能,我仍然必须执行以下操作:
value = blk.blk_func(val_param)
如何导入simupy包,只调用函数名就可以直接访问'test.py'中的函数?即
value = blk_func(val_para)
很简单
__init__.py
:
from simupy.blk import *
from simupy.info import *
顺便说一句,只是我的两分钱,但看起来您想在 __init__.py
中导入包的功能,但在 __main__.py
.
中执行操作
喜欢
__init__.py
:
from simupy.blk import *
from simupy.info import *
__main__.py
:
from simupy import *
# your code
dir_path = ....
这是最 pythonic 的方式。之后您将能够:
- 运行 你的脚本作为一个合适的 Python 模块:
python -m simupy
- 将您的模块用作库:
import simupy; print(simupy.bar())
- 仅导入特定包/功能:
from simupy.info import bar
。
对我来说这是Python的一部分..
我有一个这样的目录:
python_scripts/
test.py
simupy/
__init__.py
info.py
blk.py
'blk.py' 和 'info.py 是包含多个函数的模块,其中之一是函数 'blk_func(para)'.
在“__init__.py”中,我包含了以下代码:
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
file_lst = os.listdir(dir_path)
filename_lst = list(filter(lambda x: x[-3:]=='.py', file_lst))
filename_lst = list(map(lambda x: x[:-3], filename_lst))
filename_lst.remove('__init__')
__all__ = filename_lst.copy()
我想在 'test.py' 中访问函数 'blk_func(para)' 以及程序包中的所有其他函数。因此,我通过将以下代码行放入 'test.py':
来导入包from simupy import*
但是,为了使用该功能,我仍然必须执行以下操作:
value = blk.blk_func(val_param)
如何导入simupy包,只调用函数名就可以直接访问'test.py'中的函数?即
value = blk_func(val_para)
很简单
__init__.py
:
from simupy.blk import *
from simupy.info import *
顺便说一句,只是我的两分钱,但看起来您想在 __init__.py
中导入包的功能,但在 __main__.py
.
喜欢
__init__.py
:
from simupy.blk import *
from simupy.info import *
__main__.py
:
from simupy import *
# your code
dir_path = ....
这是最 pythonic 的方式。之后您将能够:
- 运行 你的脚本作为一个合适的 Python 模块:
python -m simupy
- 将您的模块用作库:
import simupy; print(simupy.bar())
- 仅导入特定包/功能:
from simupy.info import bar
。
对我来说这是Python的一部分..