在导入一个包的时候,Python 会根据 sys.path 中的目录来寻找这个包中包含的子目录。
目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包,主要是为了避免一些滥俗的名字(比如叫做 string)不小心的影响搜索路径中的有效模块。
最简单的情况,放一个空的 :file:__init__.py就可以了。当然这个文件中也可以包含一些初始化代码或者为(将在后面介绍的) __all__变量赋值。
用户可以每次只导入一个包里面的特定模块
此外需要用到sys.path.append(path)命令。
示例:这是我的文件夹布局
aa.py:
1 def sayHello(name): 2 print \'hello \'+name 3 4 class classA(): 5 def __init__(self,name): 6 self.name = name 7 8 def sayByeBye(self) : 9 print \'goodbye \'+self.name
bb.py:
1 import sys
2
3 sys.path.append(\'../A/\')
4
5 import aa
6
7 a = aa.classA("zxz")
8 a.sayByeBye()
9
10 aa.sayHello("zxz")
注意点:1.需要引用其他路径的py文件,需要用sys.path.append(" ")把那个py文件所在的路径引用进来,之后就可以使用该py文件中的类与函数。
2.被引用进来的是py文件,所以使用其类与函数的时候需要用文件名作为索引。故使用sayHello函数需要加上文件名aa.sayHello()
3.如果需要引用类,可以使用form,,import的方式,这样可以直接调用类中的函数,而无需再类初始化的时候加上文件名。
1 import sys
2 sys.path.append(\'../A/\')
3 from aa import classA
4 a = classA("zxz")
5 a.sayByeBye()