python包中__init__.py文件的作用


python包中__init__.py文件的作用

__init__.py文件最常用的作用是標識一個文件夾是一個 python包。

__init__.py文件的另一個作用是定義模糊導入時要導入的內容。

當我們使用類似 from package import * 的導入語句的時候就是在使用模糊導入了,這時包的編寫者就可以在__init__.py文件中定義 __all__ 來限制模糊導入的內容。

這樣可以避免將一些只在包內使用的方法或變量暴露給用戶。

__init__.py還可以簡化導入過程,比如:

Django中的 models文件有時會有很多個表,並且每個表都有很多的屬性和方法,這樣就會使得 models文件變得很臃腫。

所以我們會把創建一個 models包,在這個包里每個表都單獨用一個 py文件來保存,但是這樣在導入的時候會有一些麻煩。

現在假設我們有一個 User表,按照上面我們的方法我們有一個 models文件夾,文件夾里有一個 User.py文件,這個文件里保存着我們的 User表的類。

這樣當我們在其他文件導入 User類時的導入語句就是 from app.models.User import User 但是我們更習慣原來的寫法 from app.models import User

這時我們就可以在 models里的 __init__.py文件中導入 User類,這樣我們就可以使用原來的寫法來導入User類了。

# models.__init__.py
from .User import User


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM