Python Modüller ve Python Modül Oluşturma – Tasarım Kodlama
Python

Python Modüller ve Python Modül Oluşturma

Bu makalede, Python’da özel modüller oluşturmayı ve içe aktarmayı öğreneceksiniz. Ayrıca, Python’da özel ve yerleşik modülleri almak ve kullanmak için farklı teknikler bulacaksınız.

Python’daki modüller nelerdir?

Modüller, Python deyimlerini ve tanımlarını içeren bir dosyaya başvurur.

Örneğin: ornek.py gibi Python kodunu içeren bir dosyaya modül adı verilir ve modül adı örnek olur.

Büyük programları küçük yönetilebilir ve organize dosyalara bölmek için modüller kullanıyoruz. Ayrıca, modüller kodun yeniden kullanılabilirliğini sağlar.

Tanımlarını farklı programlara kopyalamak yerine, en çok kullandığımız fonksiyonları bir modülde tanımlayabilir ve içe aktarabiliriz.

Python Modül Oluşturma

Bir modül oluşturalım. Aşağıdakileri yazın ve ornek.py olarak kaydedin.

Burada ornek adındaki bir modülün içinde topla() fonksiyonunu tanımladık. Fonksiyon iki sayı alır ve toplamlarını döndürür.

Python’da modüller dahil edilir?

Bir modül içindeki tanımları başka bir modüle veya Python’daki interaktif yorumlayıcıya aktarabiliriz.

Bunu yapmak için import anahtar sözcüğünü kullanırız. Önceden tanımlanmış modül örneğimizi içe aktarmak için Python bilgi istemine aşağıdakileri yazıyoruz.

Bu, doğrudan geçerli sembol tablosuna örnekte tanımlanan işlevlerin adlarını girmez. Oraya sadece modül adı örneğini girer.

Modül adını ile fonksiyona noktayı kullanarak erişebiliriz.

Örneğin:

Python’un tonlarca standart modülü vardır.

Python standart modüllerinin tam listesini ve ne için olduklarını kontrol edebilirsiniz. Bu dosyalar Python’u kurduğunuz konumun içindeki Lib dizinindedir.

Standart modüller, kullanıcı tanımlı modüllerimizi içe aktardığımız şekilde içe aktarılabilir.

Modülleri içe aktarmanın çeşitli yolları vardır. Bunlar aşağıdaki gibi sıralanmıştır.

Python içe aktarma bildirimi

import ifadesini kullanarak bir modülü içe aktarabilir ve yukarıda açıklanan nokta operatörünü kullanarak içindeki tanımlara erişebiliriz. İşte bir örnek.

Program yorumlayıcı tarafından çalıştırıldığında aşağıdaki gibi bir çıktı oluşturacaktır.

Yeniden adlandırma ile içe aktarma

Bir modülü aşağıdaki gibi yeniden adlandırarak içe aktarabiliriz.

Math modülünü matematik olarak değiştirdik. Bu, bazı durumlarda yazarak zaman kazanmamızı sağlayabilir.

Math adının bizim kapsamımızda tanınmadığını unutmayın. Bu nedenle, math.pi geçersiz olacak, matematik.pi  olarak doğru uygulamadır.

Python from … import … ifadesi

Modülü bir bütün olarak içe aktarmadan bir modülden belirli isimleri aktarabiliriz.  İşte bir örnek.

Modülden yalnızca pi niteliğini içe aktardık.

Bu durumda nokta operatörünü kullanmayız. Birden fazla özelliği aşağıdaki gibi içe aktarabiliriz.

Tüm adları içe aktarma

Tüm yapıları (tanımları) aşağıdaki yapıyı kullanarak bir modülden alabiliriz.

Tüm tanımları math modülünden içe aktardık. Bu, altyazı ile başlayanlar dışındaki tüm adları kapsamımızda görünür hale getirir.

Yıldız işareti (*) simgesiyle her şeyi içe aktarmak iyi bir programlama uygulaması değildir. Bu, bir tanımlayıcı için yinelenen tanımlara yol açabilir. Ayrıca kodumuzun okunabilirliğini de engeller.

Python Modülü Arama Yolu

Bir modülü alırken, Python çeşitli yerlere bakar. Tercüman önce yerleşik bir modül arar (bulamazsa) sys.path dosyasında tanımlanan dizinler listesine bakar. Arama bu sırada.

  • Geçerli dizin.
  • PYTHONPATH (dizin listesi olan bir ortam değişkeni).
  • Yüklemeye bağlı varsayılan dizin.

Kendi yolumuzu eklemek için bu listeyi değiştirebiliriz.

Bir modülü yeniden yükleme

Python yorumlayıcısı bir oturumu yalnızca bir kez içe aktarır. Bu işleri daha verimli hale getirir. Bir modülü birden fazla çağırdığınızda modül bir defa çağrılıp belleğe yüklenecektir.

dir() yerleşik fonksiyonu

Bir modül içinde tanımlanan isimleri bulmak için dir() fonksiyonunu kullanabiliriz.

Örneğin, modül örneğinde başlangıçta bir topla) işlevi tanımladık.

Burada, sıralı bir ad listesi (topla ile birlikte) görebiliriz. Alt çizgiyle başlayan diğer tüm adlar, modülle ilişkilendirilmiş varsayılan Python öznitelikleridir (bunları kendimiz tanımlayamadık).

Örneğin, __name__ özniteliği modülün adını içerir.

Mevcut ad alanımızda tanımlanan tüm isimler dir() işlevi kullanılarak herhangi bir argüman olmadan bulunabilir.

 

1 Yorum

Yorum bırak