a.如果a文件夹所在目录在环境变量,a文件夹中的ma模块可以被以下方式导入import a.ma | from a import ma b.如果a文件夹所在目录在环境变量,a文件夹中的b文件夹的mb模块可以被以下方式导入import a.b.mb | from a.b import mbc.如果a文件夹所在目录在环境变量,a文件夹中的b文件夹的mb模块中的bbb名字要被直接导入 import a.b.mb.bbb # 错误:所有.左侧必须是文件夹 *****from a.b import mb.bbb # 错误:所有.左侧必须是文件夹from a.b.mb import bbb # 正确
总结: a.一个py文件作为自执行文件,__name__变量的值为 '__main__'b.一个py文件作为模块被导入执行,__name__变量的值为 '文件(模块)名'如何区别两种方式,可以让一个文件可以自执行,也可以被导入执行 共存在这样的py文件中写:if __name__ == '__main__':自执行的逻辑 => 因为在文件作为模块使用时 __name__为文件名,不满足条件 pass
如果只是想作为普通文件夹,py3中可以省略__init__文件,本质上文件夹也是包导入的手段:1.指名道姓到某一个模块 | 2.指名道姓到某一个模块中的名字
a.在包中采用相对导入管理模块或模块中的名字在包的__init__.py文件或是包中任意一个模块中 . 代表当前文件所在目录.. 代表当前文件所在目录的上一级目录注:.语法不能出包,因为包外的文件都能自执行,但拥有.开头导入的文件不能自执行
转载于:https://www.cnblogs.com/haojunliancheng/p/10819577.html
