在導入一個包的時候,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()