Python kaynak dizininde __init__.py
ne işe yarar?
Eskiden bir paketin gerekli bir parçasıydı (eski, 3.3 öncesi "normal paket", yeni 3.3+ "namespace package" değil).
Python iki tür paket tanımlar, normal paketler ve isim alanı paketleri. Normal paketler Python 3.2 ve öncesinde var olan geleneksel paketlerdir. Normal bir paket tipik olarak bir
__init__.py
dosyası içeren bir dizin olarak uygulanır. Bir normal paket içe aktarıldığında, bu__init__.py
dosyası dolaylı olarak çalıştırılır ve tanımladığı nesneler paketin ad alanındaki adlara bağlanır. init__.py` dosyası, diğer modüllerin içerebileceği Python kodunu içerebilir ve Python, içe aktarıldığında modüle bazı ek nitelikler ekleyecektir.
Ama sadece bağlantıya tıklayın, bir örnek, daha fazla bilgi ve isim alanı paketlerinin, __init__.py
içermeyen paket türlerinin bir açıklamasını içerir.
init.py` dosyası Python'un kendisini içeren dizinleri modül olarak ele almasını sağlar.
Ayrıca, bu bir modülde yüklenecek ilk dosyadır, bu nedenle bir modül her yüklendiğinde çalıştırmak istediğiniz kodu yürütmek veya dışa aktarılacak alt modülleri belirtmek için kullanabilirsiniz.
Diğer python dosyalarının içe aktarılmasını kolaylaştırır. Bu dosyayı diğer py dosyalarını içeren bir dizine (örneğin stuff) yerleştirdiğinizde, import stuff.other gibi bir şey yapabilirsiniz.
root\
stuff\
other.py
morestuff\
another.py
stuff dizini içindeki bu __init__.py
olmadan, other.py dosyasını içe aktaramazsınız, çünkü Python stuff dosyasının kaynak kodunun nerede olduğunu bilmez ve onu bir paket olarak tanıyamaz.