如何导入__init__.py文件以编写其中函数的单元测试?
关于Python包函数导入的单元测试写法
你的写法是可行的,但有更简洁规范的方式:
- 直接写
from work.parser.bmpe import some_function就可以,不需要加.__init__。因为Python包的__init__.py是包的默认入口文件,当你导入包work.parser.bmpe时,Python会自动执行这个文件里的代码,文件中定义或导入的函数会直接成为包命名空间的一部分。 - 举个实际场景:如果你的
bmpe/__init__.py里是自己定义的函数,或者从包内其他模块(比如utils.py)导入并暴露的函数,比如:
那在测试文件里直接用# bmpe/__init__.py def some_function(): pass # 或者从其他模块导入 from .utils import another_functionfrom work.parser.bmpe import some_function, another_function就能正常导入使用。 - 你原来的写法
from work.parser.bmpe.__init__ import some_function虽然能运行,但属于冗余写法,不符合Python的常规导入习惯,没必要多写.__init__。
内容的提问来源于stack exchange,提问作者ifrj
相关产品推荐
相关产品推荐

