Tia*_*ian 3 python python-import python-3.x
我有这样的目录:
python_scripts/
test.py
simupy/
__init__.py
info.py
blk.py
Run Code Online (Sandbox Code Playgroud)
“ 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()
Run Code Online (Sandbox Code Playgroud)
我想在“ test.py”中访问函数“ blk_func(para)”以及包中的所有其他函数。因此,我通过将以下代码行放入“ test.py”来导入包:
from simupy import*
Run Code Online (Sandbox Code Playgroud)
但是,为了使用该功能,我仍然必须执行以下操作:
value = blk.blk_func(val_param)
Run Code Online (Sandbox Code Playgroud)
如何导入包simupy,以便仅通过调用函数名称就可以直接在“ test.py”中访问该函数?即
value = blk_func(val_para)
Run Code Online (Sandbox Code Playgroud)
挺容易
__init__.py
:
from simupy.blk import *
from simupy.info import *
Run Code Online (Sandbox Code Playgroud)
顺便说一句,仅是我的两分钱,但您似乎想在中导入包的功能,__init__.py
而在中执行操作__main__.py
。
喜欢
__init__.py
:
from simupy.blk import *
from simupy.info import *
Run Code Online (Sandbox Code Playgroud)
__main__.py
:
from simupy import *
# your code
dir_path = ....
Run Code Online (Sandbox Code Playgroud)
这是最Python化的方式。之后,您将能够:
python -m simupy
import simupy; print(simupy.bar())
from simupy.info import bar
。对我来说,这是Python之美的一部分。
归档时间: |
|
查看次数: |
4926 次 |
最近记录: |