Python Modülleri

Bu makalede, Python’da özel modüller oluşturmayı ve içe aktarmayı öğreneceksiniz. Ayrıca, Python’da özel ve yerleşik modülleri içe aktarmak 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 atıfta bulunur.

Python kodunu içeren bir dosyaya, örneğin: example.pymodül denir ve modül adı example.

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ül içerisinde tanımlayıp import edebiliyoruz.

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

Burada, adında bir modül içinde bir fonksiyon tanımladık . İşlev iki sayı alır ve toplamlarını döndürür.add()example


Python’da modüller nasıl içe aktarılır?

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

Bunu importyapmak için anahtar kelimeyi kullanıyoruz. Daha önce tanımladığımız modülümüzü içe aktarmak exampleiçin Python komut istemine aşağıdakini yazıyoruz.

exampleBu, doğrudan geçerli simge tablosunda tanımlanan işlevlerin adlarını içe aktarmaz. Yalnızca exampleoradaki modül adını içe aktarır.

Modül adını kullanarak nokta .operatörünü kullanarak fonksiyona erişebiliriz. Örneğin:

Python’un tonlarca standart modülü vardır. Python standart modüllerinin tam listesine ve kullanım durumlarına göz atabilirsiniz . 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 gibi içe aktarılabilir.

Modülleri içe aktarmanın çeşitli yolları vardır. Aşağıda listelenmiştir..


Python içe aktarma ifadesi

Bir modülü deyimi kullanarak içe aktarabilir importve yukarıda açıklandığı gibi nokta operatörünü kullanarak içindeki tanımlara erişebiliriz. İşte bir örnek.

Programı çalıştırdığınızda çıktısı şöyle olacaktır:


Yeniden adlandırarak içe aktar

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

mathModülün adını m. Bu, bazı durumlarda yazma süresinden tasarruf etmemizi sağlayabilir.

Adın mathkapsamımızda tanınmadığını unutmayın. Dolayısıyla math.pigeçersizdir ve m.pidoğru uygulamadır.


Python…import ifadesinden

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

Burada, modülden sadece piözniteliği içe aktardık.math

Bu gibi durumlarda nokta operatörünü kullanmayız. Ayrıca birden çok özelliği aşağıdaki gibi içe aktarabiliriz:


Tüm adları içe aktar

Aşağıdaki yapıyı kullanarak tüm adları (tanımları) bir modülden içe aktarabiliriz:

Burada matematik modülündeki tüm tanımları içe aktardık. Bu, alt çizgi (özel tanımlar) ile başlayanlar dışında, kapsamımızda görünen tüm adları içerir.

Yıldız (*) sembolü ile 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.


Bir modülü içe aktarırken Python birkaç yere bakar. Tercüman önce yerleşik bir modül arar. Ardından (yerleşik modül bulunamazsa), Python sys.path. Arama bu sırayla.

  • Geçerli dizin.
  • PYTHONPATH(dizin listesi içeren bir ortam değişkeni).
  • Kuruluma bağlı varsayılan dizin.

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


Bir modülü yeniden yükleme

Python yorumlayıcısı, bir oturum sırasında bir modülü yalnızca bir kez içe aktarır. Bu, işleri daha verimli hale getirir. İşte bunun nasıl çalıştığını gösteren bir örnek.

Adlı bir modülde aşağıdaki kodun olduğunu varsayalım my_module.

Şimdi çoklu ithalatın etkisini görüyoruz.

Kodumuzun yalnızca bir kez çalıştırıldığını görebiliriz. Bu, modülümüzün yalnızca bir kez içe aktarıldığını söylüyor.

Şimdi modülümüz program sırasında değiştiyse, onu yeniden yüklememiz gerekecekti. Bunu yapmanın bir yolu, yorumlayıcıyı yeniden başlatmaktır. Ancak bu pek yardımcı olmuyor.

Python bunu yapmanın daha verimli bir yolunu sunar. Bir modülü yeniden yüklemek için modülün reload()içindeki işlevi kullanabiliriz . impBunu aşağıdaki şekillerde yapabiliriz:


dir() yerleşik işlevi

dir()Bir modülün içinde tanımlanmış isimleri bulmak için fonksiyonu kullanabiliriz .

Örneğin, başlangıçta sahip olduğumuz add()modülde bir fonksiyon tanımladık example.

dirModülde şu şekilde kullanabiliriz example:

Burada, sıralanmış bir ad listesi görebiliriz ( ile birlikte add). Alt çizgi ile başlayan diğer tüm adlar, modülle ilişkili varsayılan Python öznitelikleridir (kullanıcı tanımlı değil).

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

Geçerli ad alanımızda tanımlanan tüm adlar, dir()işlev kullanılarak herhangi bir argüman olmadan bulunabilir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.