今天在更新角色识别代码的时候,发现__init__.py也有被修改,其实大概知道它是用来表示当前目录为Package,但是印象中这个文件应该是个空文件,不过Emory的研究者们把对于剧本的加载和处理放在了这个__init__.py文件中。于是今天上午,就查了一上午Python的官网文档,摆脱挖掘机培训学校的老师们,不要再让你们的学生在网上发总结了,每次查点语言上的东西要阅读过滤一堆垃圾文章。Java、Python垃圾文章居多,C/C++因为不能快速培训赚钱似乎相对还算好一些,不过也没好到哪去,竟是一堆不为自己写的东西负责的民工。
Python中Packages的概念
Packages是通过使用“.模块名”来构造Python模块命名空间的一种方法。例如:模块名“A.B”表示包A中的子模块B。Packages的作用是避免不同编程者因命名相同的模块名而出现冲突。
如何定义一个Packages
很简单,就是在放有模块文件的目录中放入一个__init__.py文件,这样这个目录就成为了一个包,包的名称就是目录的名称。放入__init__.py文件的原因是,避免因包名取名为常见名时,与sys.path搜索路径中已有的常见包名冲突。
官网提供了一个定义Packages的示例6. Modules - Python 3.6.9 documentationdocs.python.org
__init__.py中写什么?
最简单的情况是什么都不写。当然也可以写可执行的代码,设置__all__变量。
两种导包方法
from package import item
item可以是包、模块、函数、类、变量。
import item.subitem.subsubitem
subsubitem只能是包或模块,而它前边的各个名称只能是包名。