我有一个目录:
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)
答案 0 :(得分:5)
非常简单
__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 = ....
这是最诡计多端的方式。之后,您将能够:
python -m simupy
import simupy; print(simupy.bar())
from simupy.info import bar
。对我而言,这是Python之美......