1. 程式人生 > >__init__.py 包管理與from import 的注意事項

__init__.py 包管理與from import 的注意事項

import 向上查詢,從本目錄一直到python的環境變數中查詢。

aa/__init__.py

aa/bb.py

def abc();

pass

from aa.bb import abc

import aa.bb

from、import 跟php的include 類似,import主要是引入方法、函式,如果使用import直接用於引入檔案,要使用全名引用。如:import aa.bb,引用aa包裡的的模組bb的函式abc(),引用全名 aa.bb.abc,用bb.abc會出錯。from aa.bb import abc.就可直接引用abc.
__init__.py 一般是目錄,裡面的.py檔案是模組。模組檔案裡是函式,物件。__init__.py主要用處是方便管理各個模組和模組之間的引用。aa目錄裡有__init__.py檔案,要引用它裡面的模組bb,只要from aa.bb 就用。from bb import abc這種方式要注意,其他模組有相同名字的方法會有出現命名衝突。解決辦法是import bb,引用bb.abc。