Python'da Modüller, Paketler ve Import Mantığı

Python'da kod tekrarını önlemek için fonksiyonları, sınıfları ve değişkenleri dosyalara ayırırsın. Bu dosyalara modül denir. Birden fazla modülü klasöre koyup organize edersen, buna paket adı verilir.

Bir modül, basitçe Python kodunun bulunduğu bir dosyadır (.py uzantılı). İçinde fonksiyon, sınıf, değişken barındırabilir. Başka bir dosyadan bu öğeleri kullanmak istediğinde import komutu ile çağırırsın.

Bir paket, modülleri içeren bir klasördür. Bu klasörün içinde mutlaka __init__.py dosyası bulunmalıdır (Python 3.3+ sürümlerde boş da olabilir, ama varlığı paket olduğunu gösterir).

Önce dosya yapısını oluştur:

1my_project/
2├── math_tools.py
3└── main.py

Adım 1: math_tools.py dosyasını oluştur

1def topla(a, b):
2return a + b
3
4def carp(a, b):
5return a * b
6
7PI = 3.14159

Adım 2: main.py dosyasında modülü kullan

1import math_tools
2
3sonuc = math_tools.topla(5, 3)
4print(f"5 + 3 = {sonuc}")
5
6sonuc2 = math_tools.carp(4, 7)
7print(f"4 × 7 = {sonuc2}")
8
9print(f"Pi değeri: {math_tools.PI}")

Çıktı:

15 + 3 = 8
24 × 7 = 28
3Pi değeri: 3.14159

from math_tools import topla yazarsan, sadece topla fonksiyonunu çağırırsın (modül adını yazmana gerek yok).

from math_tools import *

yazarsan, tüm öğeleri doğrudan kullanırsın. Ama bu karışıklığa yol açabilir, önerilmez. import math_tools as mt yazarsan, modülü kısa adla (mt) çağırırsın.

Birden fazla modülü organize etmek istersen:

1my_package/
2├── __init__.py
3├── math_tools.py
4└── string_tools.py

Bu durumda from my_package.math_tools import topla veya import my_package.math_tools yazarsın.

__init__.py

dosyası boş olabilir ya da paket yüklenirken çalışacak kod içerebilir. Paket olarak tanınması için gereklidir.

konu hakkında tepkinizi verebilirsiniz