- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Büyük bir yazılım projesini tek bir dosya (main.py) içinde yazmaya çalışmak, kodu yönetilemez ve okunamaz hale getirir. Modüller ve Paketler, kodumuzu mantıksal olarak bölümlere ayırarak bu sorunu çözer.
Modül: Tek bir Python dosyasıdır (.py).
Paket: İlgili modülleri düzenleyen bir klasör yapısıdır.
Modül, basitçe bir Python dosyasıdır (fonksiyonlar.py, hesaplama.py). Bu dosya, fonksiyonlar, sınıflar, değişkenler ve çalıştırılabilir kod içerebilir.
import İfadesiBaşka bir modüldeki kodları kendi dosyanıza dahil etmek için kullanılır.
| Söz Dizimi | Açıklama | Örnek |
| import module_name | Modülü olduğu gibi yükler. İçindeki öğelere modül adı üzerinden erişilir. | math.sqrt(4) |
| import module_name as alias | Modüle kısa bir takma ad (alias) verir. | import pandas as pd |
| from module import item | Modül içindeki sadece belirli bir fonksiyonu veya sınıfı yükler. Öğeye doğrudan erişilir. | from math import sqrt $\rightarrow$ sqrt(4) |
| from module import * | [Kötü Uygulama!] Modüldeki tüm öğeleri içeri aktarır. Ad çakışmalarına neden olabilir. | from math import * $\rightarrow$ sqrt(4) |
if __name__ == "__main__":)Bir Python dosyasını hem modül olarak (başka bir yerden içe aktarılmak üzere) hem de bağımsız program olarak (terminalden çalıştırılmak üzere) kullanmak isteyebiliriz.
__name__: Python'ın her dosyaya atadığı özel değişkendir.
Dosya doğrudan çalıştırılırsa, __name__ değeri "__main__" olur.
Dosya başka bir modül tarafından içe aktarılırsa, __name__ değeri dosyanın adı olur.
Kullanım Amacı: Bu yapı, modül olarak kullanıldığında çalışmasını istemediğimiz test kodlarını veya başlatma komutlarını korumak için kullanılır.
# ornek_modul.py
def selam_ver(isim):
print(f"Merhaba, {isim}")
if __name__ == "__main__":
# Bu blok sadece 'python ornek_modul.py' komutuyla çalışır.
# Başka bir dosyaya import edildiğinde çalışmaz.
print("Modül doğrudan çalıştırıldı.")
selam_ver("Dünya")
Paketler, birbiriyle ilişkili modülleri gruplayan ve daha büyük bir yapıda düzenleyen klasörlerdir.
Bir klasörün Python paketi olarak tanınabilmesi için geleneksel olarak __init__.py adında boş bir dosya içermesi gerekirdi (Python 3.3 sonrası bu zorunluluk kalksa da, hala iyi bir uygulamadır).
proje_ana_dizin/
├── main.py
└── hesaplamalar/ # <- Bu bir PAKET
├── __init__.py # <- Paketi tanımlar
├── temel_islemler.py # <- Modül 1
└── ileri_islemler.py # <- Modül 2
Paket içindeki modülleri veya öğeleri içe aktarırken nokta (.) notasyonu kullanılır.
# main.py dosyasında:
# 1. Paketin içindeki tüm modülü import etme
import hesaplamalar.temel_islemler
sonuc = hesaplamalar.temel_islemler.topla(5, 3)
# 2. Belirli bir modülden belirli bir fonksiyonu import etme
from hesaplamalar.ileri_islemler import carp
# 3. Kısaltma ile import etme
from hesaplamalar import temel_islemler as ht
__init__.py Dosyasının RolüBu dosya paketin bir parçası olduğunu belirtir. İçine kod yazılabilir:
Basit İçe Aktarma: Paket seviyesinde daha kolay erişim sağlamak için alt modülleri buraya taşıyabilirsiniz.
# hesaplamalar/__init__.py içeriği:
from .temel_islemler import topla
from .ileri_islemler import kok_al
# main.py dosyasında, paket seviyesinde erişim:
from hesaplamalar import topla
# Hesaplamalar paketi içinden doğrudan topla fonksiyonusys.path)Python, bir import komutu verildiğinde modülü nerede arayacağını belirleyen bir yollar listesine sahiptir. Bu listeye sys.path denir.
Mevcut dizin (içinde bulunduğunuz klasör)
Python'ın standart kütüphane dizinleri
PYTHONPATH ortam değişkeni ile tanımlanmış dizinler
Modüller ve Paketler, büyük projelerde kod tekrarını azaltır, kodun bakımını kolaylaştırır ve okunabilirliği artırır. Python'da başarılı olmak için bu yapısal organizasyonu anlamak şarttır.
🔥 Python Kariyerinizi Hemen Başlatın!
Hemen kursumuza kaydolun ve bu güçlü araçları kullanarak profesyonel Python geliştiricisi olma yolunda ilk adımı atın. Kursumuzdaki uygulamalı modüller, sizi sadece bir yazılımcı adayı değil, hazır bir profesyonel haline getirecek. Python Eğitimini Udemy platformunda bulabilirsiniz.
[ Python Eğitimi Sıfırdan İleri Seviye ]
Tıklayın ve Python Eğitimine Hemen Kaydolun!
Yorumlar
Yorum Gönder