python中__init__.py文件的作用
就是将自身文件夹当成一个package来管理,即package就是包含python文件的文件夹
在python中,一个.py文件就是一个module
/--All
---all.py
---__init__py
------A
---__init__.py
---testA1.py
---testA2.py
------B
---__init__.py
---testB1.py
---testB2.py
整个文件夹的目录如上图所示
在all.py文件中导入A和B module
导入的方法是:
import A.testA1 as a1
import A.testA2 as a2
然后通过a1和a2调用A和A2文件中的方法
现在发现通过:
问题1:
from A import *
这种方法,直接调用A1和A2文件中的方法好像不太管用
a = testA1.method()
提示:name testA1 is not defined
这个必须在文件夹A中的__init__.py文件中,定义__all__=["testA1","testA2"]
其中A1和A2是文件夹A中的两个module
否则只能用 from A import testA1的方法,调用testA1模块中的属性
问题2:
如果在当前文件中不加上__init__.py的话,
直接用from A import testA1的话,会提示没有A这个东西
问题3:
如果在All文件夹中的__init__.py文件中,添加from A import testA1
在ALL文件夹的同一级目录下,如果有一个test.py文件夹的话,直接用import All.testA1会出错
这个还不知道是为什么,因为导入All文件夹之后,就会调用All文件夹下面的__init__.py文件,这个文件
已经导入了testA1,按道理说,testA1文件是可以被test.py使用的