# 自定义python包 # 从物理上看,包就是一个文件夹,在该文件夹下包含了一个_init_.py文件,该文件夹可用于包含多个模块文件 # 从逻辑上看,包的本质依然是模块 # _init_.py 标识python包,没有就是普通文件夹,有就是python包 # 创建一个包,项目根目录,右单击,新建,自动生成_init_.py文件 # 导入自定义包中的模块,并调用模块中的函数 # 导入自定义包方式一 # 调用方式1 # import my_package.my_module_a #调用包中的函数模块 # import my_package.my_module_b # my_package.my_module_a.info_print1() # 调用函数模块中的具体函数 # my_package.my_module_b.info_print2() # # 调用方式2 # from my_package import my_module_a # from my_package import my_module_b # my_module_a.info_print1() # my_module_b.info_print2() # # 调用方式3 # from my_package.my_module_a import info_print1 # from my_package.my_module_b import info_print2 # info_print1() # info_print2() # 导入自定义包方式二 # 注意:必须在'_init_.py'文件中添加'__all__' = [ ],控制允许导入的模块列表 # from 包含 import * 模块名.目标 # 通过__all__变量,控制import * from my_package import * # 在_init_.py中,__all__ = ['my_module_a']只控制了一个函数 my_module_a.info_print1() my_module_b.info_print2() # 所以my_module_b 不能调用 from my_package import my_module_b,my_module_a #手动import 函数1,函数2 my_module_a.info_print1() my_module_b.info_print2()