Çarşamba, Temmuz 15, 2020

Python Modüller

  1. Modül Nedir?
  2. Neden Modüller?

Modül Nedir?

Biz Python eğitimi serisi boyunca hep kod tekrarından kaçınmıştık. Bunun için fonksiyon ve sınıfları kullanmıştık. Peki bu fonksiyonları veya sınıfları başka bir projede kullanabilir miyiz? İşte bizde bu derste bu konuyu biraz daha derinden işleyeceğiz. Hemen modüllerin tanımını yapayım; modüller fonksiyon, sınıf ve özelliklerin bir arada bulunduğu Python dosyalarıdır. Siz bu dosyaları istediğiniz projede çağırıp kullanabilirsiniz. Aklınız karıştı dimi evet yanlış duymadınız Python da oluşturduğunuz her bir dosya aslında bir modüldür.

Python da iki çeşit modül var;

  1. Hazır modüller
  2. Kendi oluşturduğumuz modüller.

Biz bu derste kendi modülümüzü oluşturacağız. Bir sonraki derslerde ise hazır modülleri işleyeceğiz. Peki biz bu modülleri kullanmak zorunda mıyız? Eğer modül kullanırsak ne gibi avantaj ve dezavantajlarını görürüz modüllerin? O zaman hemen bir başlık atalım.

Neden Modüller?

Büyük ve üzerinde çok fazla geliştirici çalışan projeler genel olarak modüllere Türkçe kaşılığı ile parçalara ayrılır. Bu sayede parçalara ayrılan projede  bize bu tür avantajları sağlar.

  • Modüller kod tekrarını ünler.
  • Modüller projemizi daha okunabilir olmasını sağlıyor.
  • Modüller yapıda projeyi değiştirmek, güncellemek, yeni modüller eklemek basittir.
  • Modüller yapıda projede bakım kolaydır.
  • Modüller aynı projede birden fazla kişinin çalışmasına imkan sağlıyor.

Python Modül Oluşturmak ve Projeye Dahil Etme

Biz zaten oluşturduğumuz Python sayfasının bir modül olduğunu biliyoruz dimi o zaman hemen yeni bir dosya oluşturalım;

Bu dosyamız moduls.py adında bir Python dosyası.

İçine şu şekilde oluşturduğumuz fonksiyonu ekliyoruz.

12def yazdir():    print(“Merhaba Dünya”)

Şimdi başka bir Python dosyası daha oluşturuyoruz. Bu dosyaya da main.py diyoruz. Biz oluşturmuş olduğumuz modülleri burada kullanacağız.

Şimdi oluşturduğumuz moduls.py dosyasını yani modülünü çağırıyoruz.

Genel kullanım şekli;

import moduls_name

bizde hemen ekleyelim.

1import moduls

Şimdi dilerseniz bu modülün içinde ne olduğuna bakalım. Bir önceki derslerimizde birçok defa kullandığımız dir() fonksiyonunu kullanıyoruz.

main.py modülümüz şu çekilde;

123import moduls print(dir(moduls))

Çıktı:

1[‘__builtins__’, ‘__cached__’, ‘__doc__’, ‘__file__’, ‘__loader__’, ‘__name__’, ‘__package__’, ‘__spec__’, ‘yazdir’]

Bir önceki derslerimizde “__” ile başlayan fonksiyonların özel fonksiyon olduğunu söylemiştik. Dikkat ederseniz listenin son elemanı bizim oluşturduğumuz yazdir() fonksiyonu bulunmakta.

Peki bu fonksiyonu kullanabiliyor muyuz? Hemen bakalım.

12345import modulsmoduls.yazdir() Çıktı:Merhaba Dünya

Görüldüğü gibi başarılı bir şekilde oluşturduğumuz fonksiyonları kullandık. Peki sınıfları nasıl kullanacağız hemen görelim.

12345678910111213class Ogrenci():    def __init__(self,adi,soyadi,numarasi):        self.ad = adi        self.soyad = soyadi        self.numara = numarasi     def bilgiler(self):        print(“Adi: {}\nSoyadi: {}\nNumarasi: {}”.format(self.ad,self.soyad,self.numara))   ogr = Ogrenci(“Mustafa”,”KAYA”,656)ogr.bilgiler()

Şimdi main.py sayfasında oluşturduğumuz sınıfı çalıştıralım.

Burada dikkat etmemiz gereken nokta oluşturduğumuz sınıf’tan bir obje oluşturuyoruz aksi takdirde oluşturduğumuz Ogrenci() sınıfı soyut bir kavram olduğu için bu sınıfı kullanamayız.

Hemen modul.py sayfasına geliyoruz ve tekrar modülü çağırıyoruz.

1import moduls

Şimdi main.py modülünü çalıştıralım.

12345Adi: Mustafa Soyadi: KAYA Numarasi: 569

Şeklinde bir çıktı aldık. Burada dikkat edeceğiniz nokta biz moduls.py sayfasında daha önce öğrenci sınıfı objesi oluşturduğumuz ve çağırdığımız için modul.py modülünü çağırdığımız zaman Ogrenci() sınıfı otomatik olarak çalıştı. Peki biz modülü eklediğimiz projede istediğimiz zaman çağırıp kullanmak istiyorsak ne yapmalıyız.

Bunun için moduls.py sayfasında değil main.py sayfasında objemizi oluşturuyoruz.

1234import moduls ogr = moduls.Ogrenci(“Mustafa”,”KAYA”,456)ogr.bilgiler()

başka bir çağırma yöntemi ise şu şekilde;

123import moduls moduls.Ogrenci(“Mustafa”,”KAYA”,456).bilgiler()

Çıktı:

12345Adi: Mustafa Soyadi: KAYA Numarasi: 456

İstediğiniz şekilde kullanabilirsiniz. Ama ilk önce Python OOP mantığını iyice pekiştirmeniz şiddetle tavsiye ediyorum.

Şimdi gelelim dikkat edilecek başka bir noktaya daha. Biz az önce bir modülü projeye dahil ederken şu şekilde bir syntax yapısını kullanmıştık.

İmport modül_adi

Bu kullanım bir standart kullanım şeklidir. Başka kullanım yöntemleri de var. Hemen bakalım.

Örneğin çağırdığınız modül ismi çok uzunsa ve kullanımı çok zor ise şu şekilde proje ekleyebilirsiniz.

import modul_adi as takma_adi

Yani modülümüz bir takma isim verdik. Hemen kullanalım.

123import moduls as mod mod.Ogrenci(“Mustafa”,”KAYA”,456).bilgiler()

Çıktı:

12345Adi: Mustafa Soyadi: KAYA Numarasi: 456

Başka bir yöntem daha yapalım mesela biz modül içindeki bütün fonksiyon ve sınıfları çağırmak istemiyoruz sadece ihtiyacımız olan fonksiyon ve sınıfları çağırmak istiyorsak şu şekilde yapıyoruz.

From modül_ad import fonksiyon,sınıf

hemen kullanalım.

1from moduls import yazdir

Biz burada modul.py içindeki yazdir() fonksiyonunu çağırdığımız için sadece bu fonksiyonu kullanabiliyoruz. Ogrenci() sınıfını kullanamayız. Eğer kullanmak istiyorsak Ogrenci() sınıfını da ekliyoruz. Şu şekilde;

1from moduls import yazdir,Ogrenci

Peki modül içinde belki 100 tane fonksiyon veya sınıf varsa hepsini teker teker mi ekleyeceğiz. Tabi ki hayır zaten az önce bunu yapmıştık.

1import moduls

şeklinde veya

1from moduls import *

Bugün En Çok Okunanlar

Xiaomi, Mi True Kablosuz Kulaklıklar 2’nin 15 Temmuz’da piyasaya sürüleceğini onayladı

Mi True Kablosuz Kulaklık 2'yi duyurduktan sonra, Xiaomi şimdi 15 Temmuz'da yapılacak bir açılış etkinliğinde Mi True Kablosuz Kulaklık 2 Temel adlı...

Microsoft’un Çinli chatbotu Xiaoice ayrı bir şirkete dönüşüyor

2014 yılında, Cortana'yı piyasaya süren topuklular, Microsoft ayrıca Çin pazarı için Xiaoice olarak bilinen bir sohbet botu başlattı . Ayrıca kişisel bir asistan olarak hizmet etti, ancak daha fazla...

iPhone 12 serisinin iPhone 11’den daha küçük bir bataryaya sahip olduğu bildirildi

Apple'ın yeni nesil iPhone 12 serisini Eylül ayında tanıtmaya başladığı bildiriliyor . Daha sonra akıllı telefonların Ekim ayında satın alınması bekleniyor. O lansmana yaklaştıkça, daha yeni bilgilerle karşı karşıyayız. En...

Google’ın Hindistan’daki önemli yatırımlarına bir bakış

Bugün erken saatlerde, Hindistan için yıllık Google etkinliğinin altıncı sayısında Google CEO'su Sundar Pichai , önümüzdeki beş ila yedi yıl içinde Hindistan'a 75.000 cro (yaklaşık...

Benzer Haberler

Tails Linux OS Sürüm 4.8, Büyük Güvenlik Güncelleştirmeleriyle Çıktı

Artık Tails'in yeni bir sürümü indirilebiliyor ve bu sefer son aşama, bu Linux dağıtımını çalıştırırken kullanıcıları korumak için gereken bir dizi güvenlik...

Apple Watch, yaklaşan watchOS 7 sürümü ile daha hızlı hissedecek

WWDC'de Apple, bu sonbaharda Apple Watch'a gelecek olan watchOS 7 güncellemesini duyurdu. Bu güncelleme , paylaşılabilir ve bulunabilir saat yüzü yapılandırmaları, uyku takibi, otomatik...

Linux Mint 20 ISO sonuçlandı, önümüzdeki günlerde piyasaya sürülecek

Linux Mint 20 stabil sürümleri test edilmiştir ve şimdi serbest bırakılması için onaylanmıştır. Linux Mint ekibi hala ana web sitesini herhangi bir bilgi...

Windows Dosya Kurtarma, Microsoft tarafından silinen verilerin kurtarılmasına yardımcı olan yeni bir uygulama

Microsoft, önemli bir dosyayı yanlışlıkla sildiyseniz veya diskinizde, flash sürücünüzde veya bellek kartınızda bozuk veriler varsa kullanışlı olabilecek bir dosya kurtarma uygulamasını...

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen adınızı buraya girin

Xiaomi, Mi True Kablosuz Kulaklıklar 2’nin 15 Temmuz’da piyasaya sürüleceğini onayladı

Mi True Kablosuz Kulaklık 2'yi duyurduktan sonra, Xiaomi şimdi 15...

Microsoft’un Çinli chatbotu Xiaoice ayrı bir şirkete dönüşüyor

2014 yılında, Cortana'yı piyasaya süren topuklular, Microsoft ayrıca Çin pazarı için Xiaoice olarak bilinen bir...

iPhone 12 serisinin iPhone 11’den daha küçük bir bataryaya sahip olduğu bildirildi

Apple'ın yeni nesil iPhone 12 serisini Eylül ayında tanıtmaya başladığı bildiriliyor . Daha sonra akıllı telefonların...