Python Fonksiyonları ve Modülleri: Etkili Kod Yazma Rehberi

Yönetici
Python'da fonksiyonlar ve modüller, kodunuzu modüler, yeniden kullanılabilir ve yönetilebilir hale getirmenin anahtarıdır. Bu yapılar sayesinde büyük projeleri küçük parçalara ayırabilir, hataları azaltabilir ve ekip çalışmasını kolaylaştırabilirsiniz. Bu makalede, fonksiyonların temelinden başlayarak modüllere ve paketlere geçiş yapacağız. Eğer Python'un temel veri yapılarını biliyorsanız, bu içerik bir sonraki seviyeye geçmeniz için mükemmel.

Fonksiyonların Temelleri​

Fonksiyonlar, belirli bir görevi yerine getiren kod bloklarıdır. def anahtar kelimesiyle tanımlanır ve parametre alabilirler.

Basit bir örnek:

Kod:
def toplama(a, b):
return a + b

sonuc = toplama(5, 3)
print(sonuc)  # Çıktı: 8
  • Parametreler: Varsayılan değerler ekleyebilirsiniz.

    Kod:
    def selamla(isim="Misafir"):
    print(f"Merhaba, {isim}!")
    
    selamla()  # Merhaba, Misafir!
    selamla("Hakan")  # Merhaba, Hakan!

  • Dönüş Değerleri: Birden fazla değer dönebilirsiniz (tuple olarak).

    Kod:
    def bolme_kalan(sayi1, sayi2):
    return sayi1 // sayi2, sayi1 % sayi2
    
    bolum, kalan = bolme_kalan(10, 3)  # bolum=3, kalan=1

  • Lambda Fonksiyonlar: Kısa, anonim fonksiyonlar için.

    Kod:
    kare = lambda x: x**2
    print(kare(4))  # 16
Fonksiyonlar, global ve local kapsam (scope) kurallarına uyar. Local değişkenler fonksiyon içinde kalır.

İleri Seviye Fonksiyon Özellikleri​

  • Args ve Kwargs: Değişken sayıda parametre için.

    Kod:
    def toplam(*args):
    return sum(args)
    
    print(toplam(1, 2, 3, 4))  # 10
    
    def bilgi(**kwargs):
    for anahtar, deger in kwargs.items():
    print(f"{anahtar}: {deger}")
    
    bilgi(isim="Ali", yas=28)

  • Dekoratörler: Fonksiyonları modifiye etmek için.

    Kod:
    def zaman_olc(func):
    def wrapper(*args, **kwargs):
    import time
    basla = time.time()
    sonuc = func(*args, **kwargs)
    bitis = time.time()
    print(f"Çalışma süresi: {bitis - basla} saniye")
    return sonuc
    return wrapper
    
    @zaman_olc
    def hesaplama():
    # Zaman alan bir işlem
    pass
Bu özellikler, kodunuzu daha esnek kılar.

Modüller ve Paketler​

Modüller, fonksiyonları ve sınıfları içeren Python dosyalarıdır (.py). Standart kütüphaneler (math, random) veya üçüncü parti (numpy) olabilir.

Modül içe aktarma:

Kod:
import math
print(math.sqrt(16))  # 4.0

from random import randint
print(randint(1, 10))  # Rastgele sayı
  • Kendi Modülünüzü Oluşturma: Bir hesapla.py dosyası oluşturun:
    def carpma(a, b):
    return a * b
    Sonra başka dosyada: from hesapla import carpma
Paketler, modüllerin klasör yapısıdır. __init__.py dosyasıyla tanımlanır. Büyük projelerde kullanılır.

Yaygın Hatalar ve En İyi Uygulamalar​

  • Hata: Fonksiyon içinde global değişken değiştirmek – global kullanın.
  • İpucu: Fonksiyonları kısa tutun (Single Responsibility Principle).
  • Test: assert ile basit testler yazın.
    assert toplama(2, 3) == 5, "Hata!"
Modülleri içe aktarırken çakışmaları önlemek için as kullanın: import numpy as np.

Sonuç​

Fonksiyonlar ve modüller, Python'un gücünü ortaya çıkarır. Bu kavramlarla, profesyonel seviyede kod yazmaya başlayabilirsiniz. Pratik için kendi modüllerinizi oluşturun ve GitHub'da paylaşın. Forumumuzda fonksiyon örneklerinizi tartışabilir, yardım alabilirsiniz. Yorumlarda deneyimlerinizi belirtebilirsiniz.

Orhak ekibi.
 
Üst