DERS 34 - Modüller

Komple eğitim serisinin bu dersinde python'da modüllerin ne olduğu hakkında bilgi veriliyor.

Modül içerisinde fonksiyonları, sınıfları veya değişkenleri barındıran bir Python dosyasıdır.

Modüllerde aslında içerisinde faydalı olabilecek sınıfların, fonksiyonların veya değişkenlerin yazıldığı ve sonrasında ihtiyacımız olduğunda kullanabileceğimiz kodlar bütünüdür.

Paketler (Packages) birden çok modülün birleşmesi ile, Kütüphaneler (Libraries) ise birden çok paketin birleşmesi ile oluşurlar.

Modülleri projenize çağırıp indirmek ve kullanmak için dört tane yöntem kullanabilirsiniz 1. Herhangi bir modülü projemize indirmek ve kullanmak için import math şeklinde çağırabilirsiniz 2. Modülleri indirirken kendinizde isim veya kısaltma verebilirsiniz import math as matematik ya da import math as mt şeklinde çağırabilirsiniz 3. Bir modül içerisinden herhangi bir sınıf veya fonksiyonu kullanmak istediğinizde from math import sqrt şeklinde çağırabilirsiniz 4. Bir modül ilerisindeki her şeyi from math import * şeklinde çağırabilirsiniz

Python da iki çeşit modül var;

  1. Hazır modüller
  2. Kendi oluşturduğumuz modüller.

Neden Modüller?

Büyük ve üzerinde çok fazla geliştirici çalışan projeler genel olarak modüller parçalara ayrılır. Bu sayede parçalara ayrılan projede bize bu tür avantajları sağlar:

  • Modüller kod tekrarını ünler.
  • Modüller projemizi daha okunabilir olmasını sağlıyor.
  • Modüller yapıda projeyi değiştirmek, güncellemek, yeni modüller eklemek basittir.
  • Modüller yapıda projede bakım kolaydır.
  • Modüller aynı projede birden fazla kişinin çalışmasına imkan sağlıyor.

__init__.py

__init__.py dosyaları Python'un modül dizinleri paket içeren dizinler olarak algılaması için gereklidirler. __init__.py dosyasının içine yazılan import komutları modülü kullanan programın diğer kısımları için erişilebilecek içeriği belirtmektedir. __init__.py boş bir dosya olabileceği gibi içinde en basit olarak import komutları bulunmaktadır.

Örnek olarak __init__.py dosyası aşağıdaki gibi olabilir:

from .main import index
from .post import *
from .report import post_report
from .comment import post_comment

DERSLER