Python

Python Paketler

Bu yazıda, kod tabanınızı Python paketlerini kullanarak temiz, verimli modüllere bölmeyi öğreneceksiniz. Ayrıca, kendi veya üçüncü taraf paketlerinizi Python programınıza aktarmayı ve kullanmayı öğreneceksiniz.

Python paket nedir?

Genellikle tüm dosyalarımızı bilgisayarımızda aynı yerde tutmayız. Daha kolay erişim için iyi organize edilmiş bir dizin hiyerarşisi kullanıyoruz.

Benzer dosyalar aynı dizinde tutulur, örneğin tüm şarkıları “müzik” dizininde tutabiliriz. Buna benzer olarak, Python’un dizinler için paketleri ve dosyalar için modülleri vardır.

Uygulama programımız çok sayıda modülle birlikte büyüdükçe, benzer modülleri tek bir pakete ve farklı modülleri farklı paketlere yerleştiriyoruz. Bu, bir projenin (programın) yönetilmesini ve kavramsal olarak açık olmasını sağlar.

Benzer şekilde, bir dizin alt dizinler ve dosyalar içerebileceğinden, bir Python paketinin alt paketleri ve modülleri olabilir.

Bir dizinin Python’un bir paket olarak kabul etmesi için __init__.py adlı bir dosya içermesi gerekir. Bu dosya boş bırakılabilir, ancak genellikle bu paketin başlatma kodunu bu dosyaya yerleştiririz.

İşte bir örnek. Bir oyun geliştirdiğimizi varsayalım, olası bir paket ve modül organizasyonu aşağıdaki şekilde gösterildiği gibi olabilir.

python paket
python paket

Modülü paketten içe aktarma

Nokta (.) Operatörünü kullanarak modülleri paketlerden alabiliriz.

Örneğin, yukarıdaki örnekte oynat modülünü içe aktarmak istiyorsanız, bu aşağıdaki gibi yapılır.

Şimdi bu modül seviye_sec() adında bir işlev içeriyorsa, ona başvurmak için tam adı kullanmamız gerekir.

Bu yapı uzun görünüyorsa, modülü paket öneki olmadan aşağıdaki gibi içe aktarabiliriz.

Şimdi fonksiyonu aşağıdaki gibi çağırabiliriz.

Yine de bir paket içinde bir modülün sadece gerekli işlev (veya sınıf veya değişken) formunu içe aktarmanın başka bir yolu aşağıdaki gibi olacaktır.

Şimdi bu işlevi doğrudan çağırabiliriz.

Daha kolay olmasına rağmen, bu yöntem önerilmez. Tam ad alanını kullanmak karışıklığı önler ve aynı tanımlayıcı adlarının çarpışmasını önler.

Etiketler

1 Yorum

Yorum yapmak için tıklayın