questions
1 模块包内的__init__.py的用途;
说明这是一个包目录;
当这个包被引用时,会执行__init__.py文件;
init.py中的变量会成为模块对象的属性;
2 你应该如何避每次引用包内容时,重复包的完整路径?
使用from 语句 from a.b.c import name1
3 哪些目录需要__init__.py?
在 py3.2之前 包目录都得有__init__.py文件
4 哪些情况下需要通过import而不是from使用包?
导入同名模块名称时
5 from mypkg import spam 和from . import spam 有什么差别?
前者是绝对路径,后者是相对路径;
前者在不同版本表现不一样:
python3.x 前者只通过绝对路径查找;
python2.x在通过sys.path目录搜索时,先搜索包目录;
6 什么是一个命名空间包?
在python3.3之后,可以没用__init__.py目录;
它是找到同名目录的虚拟拼接。内容可以横跨多个目录;