type
status
date
slug
summary
tags
category
icon
password
Python模块
参考链接
包(package)与文件夹(directory)
首先我们需要明白包与文件夹的区别,就比如我们用pycharm右键新建的时候,会有package与directory选项,最开始我是觉得一样的,package无非就是会自动创建一个_ _ init _ _.py文件(里面啥都没有,但是你把他删了之后,package自动就会变成directory,最直观的就是图标上的黑点没了)
其实,Python检测到一个目录下存在_ _ init _ _.py文件时,就会把它当成一个模块(module),可以为空,也可以有很多内容。
_ _ init _ _.py _ _ all _ _ _ _ name _ _ _ _ doc _ _ import
- _ _ init_ _.py 文件:这个文件,就像一个标识符一样,用来表明一个文件夹是python包还是一般文件夹,如果文件夹中存在该文件,就是python包
用途:当用于import对象时,可以识别出哪些是可以导入的包,哪些只是一般文件夹可以在其中导入需要的对象,然后通过在执行程序中import package来引用这些包,所以简化了执行程序,因为每次导入package的时候会自动执行init.py;但最好不要在这里写自己的模块,该文件越简单越好_ _ all _ _参数,只用于指定 from package import * 时,导入的包是哪些,不需要的包可以先不导入;并不影响from package import module/package、import package.module等形式的导入
注意:该文件可以为空,即不做操作,但是package必须要有这个文件
- import:用于导入包、函数、变量、类等;那么import干了些啥?(sys.path是可以修改的,且从package包导入模块需要用 from package import ... 形式)
- _ _ name _ :用于判断当前模块是不是主程序文件(主执行),也就是查看 _ _ name _ _ 的值是否为 ' _ _ main _ _' ,如果是则该程序属于主程序文件,如果不是则显示该文件的文件名
- _ _ doc _ _:模块的注释文本,例如函数或者类的说明,用 '''...''' 三引号形式包围
- _ _ all _ _只用于控制from package import * 中导入的包,在 _ _ init _ _.py中定义
目录结构
Project
directory
directory_a.py
directory_b.py
package
_ _ init _ _.py
package_a.py
package_b.py
package_test
_ _ init _ _.py
package_test_a.py
package_test_b.py
导入
directory_b.py中导入directory_a.py中的方法
package_test_b.py中导入package_test_a.py中的方法
package_b.py中导入package_a.py中的方法
package_b.py中导入package_test_a.py中的方法
package_test_b.py中导入package_a.py中的方法
directory_b.py中导入package_a.py中的方法
- 作者:多吃肉蛋奶
- 链接:https://blog.zitalk.cn/article/26
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。