Python: Bölüm 6 – Modüller

Herkese merhabalar,

Python eğitim serisinin bir önceki yazısında kendi fonksiyonlarımızı oluşturmayı işledik. Bundan önceki bölüm olan Python: Bölüm 5 – Fonksiyonlar yazısını daha okumadıysanız bu linke tıklayarak ulaşabilirsiniz.

İçerik:

  1. Modüller
  2. Modül Oluşturma
  3. Paketler

Bu yazımızda ise detaylı bir şekilde modüller ve paketleri işleyeceğiz. Hadi başlayalım!!

Modüller

Python programlama dilinde modül, kısaca .py uzantılı python kodu içeren herhangi bir dosyadır diyebiliriz. Bu dosyanın içinde sınıflar, değişkenler, fonksiyonlar, veya çalışabilecek kodlar bulunabilir. Örneğin modul_1 isimli bir dosyayı aşağıdaki şekilde çağırabiliriz.

Böyle bir durumda, modul_1.py dosyasının içerdiği her fonksiyona, değişkene veya sınıfa sanki biz yazmışız gibi erişilebiliriz. Ayrıca, aşağıdaki gibi tek bir import ile birden fazla modül yükleyebiliriz.

Hadi şimdi bir örnek üzerinden gidelim. Aşağıdaki kodu modul_1.py isimli bir dosyaya yazıp kaydedip bir modül oluşturmuş olalım.

Komut satırında veya başka bir program içinde import modul_1 komutunu kullanarak (sonunda .py yazmadan) bu modülün içindeki bütün komutların erişilmesini sağlarız.

Burada dosyayı nereye kaydettiğiniz önemli. modul_1.py ile bu modülü kullanacağımız dosya aynı dizinde olması gerekmektedir. Bunu yapmak çok önemli, aksi halde kodumuz hata verir.

Modülü “import” etmekle yeni bir isim alanı yaratmış oldunuz. Modülde tanımlanan isimlere erişmek için nokta kullanılır.

Modül yüklemenin bir başka yolu ile from …. import ….. şeklindedir. Bu modülden sadece belli isimleri ana isim alanına yüklemek için kullanılır. O zaman seçilen isimlere nokta işlemi olmadan doğrudan erişebiliriz.

Modüldeki bütün isimleri ana isim alanına aktarmak için from modul_1 import * komutu verilebilir. Ancak, modül içindeki nesnelere verdiğiniz isimler daha önce tanımlanmış isimlerin yerine geçebilir.

Modül ismini her seferinde uzun uzun yazmak epeyce zahmetli olabilir, ve kodun okunaklılığını azaltır. Python’un as kelimesi ile modüle daha kısa bir isim atayabiliriz.

Modül Oluşturma:

Aslında .py uzantılı her dosya bir modül olduğundan yukarıda bahsetmiştik. Bu modülleri import ile çalıştırmakta olduğumuz dosyayı ekleyebiliriz. İçeri aktardığımız py dosyasındaki değişkenler, sabitler, fonksiyonlar ve sınıflar erişebilir hale gelirler. Doğrudan ulaşılabilir modüller için ek bir işleme gerek yoktur. Siz de kendi modüllerinizi kolayca oluşturup kullanabilirsiniz. Eğer alt-modüllere ihtiyacınız var ise o zaman bir paket yapısından yararlanmak gerekir.

Paketler

Paketler modül, alt-paket, alt-alt paket içeren hiyerarşik dizin yapılardır. Bir paket dizini, içi boş bile olsa mutlaka __init__.py isimli bir dosya içerir. Bu dosyada hangi modüllerin API olarak kullanımına izin verileceği, hangilerinin yerel kalacağı gibi bilgiler yer alır. Ama, ilk etapta biz içini boş bırakacağız.

Hadi şimdi bir örnek yapalım. my_module isimli bir dizin ve içinde üç dosya yaratalım: module_x, module_y, ve __init__.py. __init__.py dosyasının içi boş kalıcak. Dosyanın görevi o dizinin bir paket olduğunu yorumlayıcıya bildirmektir.  İlk iki dosyanın içeriği şöyle olsun:

module_x:

module_y:

Şimdi modülleri yükleyelim:

Diğer bir yükleme şekline göz atalım:

Üst dizin altında başka alt dizinler yaratarak daha da dallanıp budaklanan bir paket hiyerarşisi yaratabiliriz. Her alt dizinin içinde kendisine ait bir __init__.py dosyası bulunmalı (unutmayın içi boş olabilir). Nokta işlemini uygulayarak alt paketlere ulaşılır.

Bu yazıda işlediğimiz kodlara bu linkteki Github reposundan ulaşabilirsiniz.

Bu bölümde Python programlama dilinde modüller ve paketleri gördük. Umarım beğenmişsinizdir. Vakit ayırıp okuduğunuz için teşekkür ederim. Python programlama eğitim serimiz boyunca yazdığımız tüm kodlara erişmek için bu linke tıklamanız yeterlidir.

Kaynaklar:

  1. https://docs.python.org/3/tutorial/modules.html
  2. https://pybilim.wordpress.com/2013/10/21/moduller-ve-paketler/

 

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.