OS:Ubuntu
Python: Python 2.7.10+
IDE:PyCharm
实验之前还要说一下,Python里面,必须在每个文件夹下面建一个
__init__.py
,这个文件是空的,但是必须要有这个文件,Python才会把这个文件夹视为一个
Python Package
,包里面的文件就可以称为模块。
首先看看测试工程的目录结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
➜ package_ref tree . ├── module1 │ ├── __init__.py │ ├── m11.py │ ├── m12.py │ └── module11 │ ├── __init__.py │ └── m1_m11.py ├── module2 │ ├── __init__.py │ └── m21.py ├── module3 │ ├── __init__.py │ └── m31.py └── m.py
|
具体的引用关系为:
m21.py引用了m11,m12中的函数
m31引用了m1_11中的函数
m.py引用了m11,m12中的函数
m11.py
1 2 3 4 5 6 7 8 9 10
|
def func1(): print 'm11 func1'
def func2(): print 'm11 func2'
|
m12.py
1 2 3 4 5 6 7 8 9 10
|
def func1(): print 'm12 func1'
def func2(): print 'm12 func2'
|
m1_m11.py
1 2 3 4 5 6 7 8 9 10
|
def func1(): print 'm1_m11 func1'
def func2(): print 'm1_m11 func2'
|
m21.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
from module1 import m11, m12
def func1(): m11.func1() print 'm21 func1'
def func2(): m12.func2() print 'm21 func2'
if __name__ == '__main__': func1() func2()
|
m31.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
from module1.module11 import m1_m11
def func1(): m1_m11.func1() print 'm31 func1'
def func2(): m1_m11.func2() print 'm31 func2'
if __name__ == '__main__': func1() func2()
|
m.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
from module1 import m11, m12
def func1(): m11.func1() print 'm func1'
def func2(): m12.func2() print 'm func2'
if __name__ == '__main__': func1() func2()
|
python-package_ref