Python Modüller ve Paketler (Module, Package)

Modüller, Python kodumuzu daha organize ve adı üstünde modüler şekilde kullanmamıza olanak sağlar. Basit olarak bir Python modülü içerisinde kodlar barındıran ve kodunuza import yani dahil edebileceğiniz bir python dosyasıdır.

Örnek olarak çok küçük bir python modülü şu şekilde olabilir.

def selam_ver():
  print("Selam")
  return

Yukarıdaki kod parçasını selam.py adıyla kayıt ederek bir modül olarak kullanabiliriz.

# modülümüz dahil ediyoruz
import selam

selam.selam_ver()
# konsola selam yazacaktır

Python bir modülün içinden belirli bir kısmını çağırmamıza da izin verir. Bunun için şu şekilde bir notasyon kullanırız.

import selam_ver from selam

selam_ver()
# yine konsola Selam yazacaktır.

Python bir modül kullanmak istediğinizde, modüle ait kodları içeren dosyayı bulmak için sırayla şu klasörlere bakar.

  • Çalışan python dosyasının içinde bulunduğu klasör
  • Burada bulamaz ise PYTHONPATH global değişkenindeki klasörler
  • PYTHONPATH tanımlı değil ise Python kaynak dosyalarının bulunduğu klasör

Paketler
Bir Python paketi basit tanımıyla içinde modüller ve bu modülleri çağıran bir __init__.py dosyası bulunduran bir klasördür.

Örneğin; matematik adında bir klasörümüz olsun ve içinde topla.py cikart.py gibi modüllerimiz ve bu modüllerin içinde aynı isimde birer fonksiyon olsun.

# __init__.py dosyamız

from .topla import toplama 
# topla.py içerisinden toplama isimli fonksiyonu çağırıyoruz
from .cikart import cikartma
from .carp import carpma
from .bol import bolme

Matematik paketimizi kullanmak istediğimizde,

# bu kodumuz ile matematik klasörümüzün aynı klasör için bulunması gerekli
# ya da matematik paketimizi python un paketler için bakacağı bir klasöre koymamız gerekli
import matematik

matematik.toplama(3,5)
matematik.carpma(2,4)

__init__.py dosyasındaki import ifadelerinde modül adından önce bir nokta işareti var. Bu notasyon ile relative import yapabiliriz. Modülümüzün bulunduğu konumu referans almasını isteyerek o klasördeki ya da bir üst klasördeki bir modülü import edebiliriz.

Kaynak
https://docs.python.org/3/tutorial/modules.html

Bir Cevap Yazın