Giriş
Python dünya genelinde en yaygın kullanılan programlama dillerinden biridir. Modüller Python kodunun kritik bir parçasıdır. Bir modül, basitçe bir .py dosyasıdır, Python 3 bağlamında. Bu, herhangi bir Python dosyasına bir modül olarak atıfta bulunabileceğiniz anlamına gelir.
Bu modülleri önceden oluşturulmuş kütüphane aracılığıyla edinmeniz mümkündür. Daha fazla bilgi edinmek için Python Standart Kütüphanesi kütüphanesine göz atabilirsiniz. Bunlar, Python'ı kurduğunuzda sisteminize yüklenir. Diğer durumlarda, bu modülleri Python paket yöneticisi pip kullanarak yükleyebilirsiniz. Peki ya özel bir modül oluşturmak isterseniz? Eğer durum buysa, Python'da kendi modüllerinizi oluşturabileceğinizi bilmek sizi memnun edecektir.
Bu ayrıntılı kılavuzda, Python 3'te modül yazmak ve içe aktarmak için izlemeniz gereken adımları özetleyeceğiz.
Önkoşullar
Başlamadan önce, Python 3'ün kurulu olduğundan ve bir programlama ortamının kurulduğundan emin olmanız gerekir. Kurulumu tamamlamak için, hazırda yoksa Ubuntu 16.04 üzerinde Python 3 kurulumu ve yerel programlama ortamı kurulumu eğitimimizi takip edebilirsiniz.
Bir Modül Nasıl Yazılır?
Bir modül yazarak başlayalım. Bir modülü, tıpkı diğer herhangi bir Python dosyasını oluşturduğunuz gibi yazarsınız. Tipik bir modül; fonksiyonların, sınıfların ve değişkenlerin tanımlarını içerir. Sonrasında, modülü diğer Python programlarına uygulamak için kullanabilirsiniz.
Anlamanıza yardımcı olması için bir örneği ele alalım. Diyelim ki hello.py adında bir dosya oluşturmak istiyoruz. Bunu daha sonra başka bir dosyaya da aktaracağız. Süreçteki ilk adım bir fonksiyon oluşturmaktır. Bu fonksiyon, Hello, World! yazdırmaya yarayacaktır, şu şekilde:
|
1 2 3 |
# Bir fonksiyon tanımla def world(): print("Hello, World!") |
Bu noktada, python hello.py komutunu çalıştırmak size hiçbir sonuç vermeyecektir. Bunun nedeni programa henüz herhangi bir talimat vermemiş olmamızdır. Çalışmasını sağlamak için modülü içe aktarmamız gerekir.
Bir Modül Nasıl İçe Aktarılır?
Modülünüzü bir fonksiyon haline getirmek üzere içe aktarmak için, aynı dizinde ikinci bir dosya oluşturmanız gerekir. Bu yeni dosyaya main_program.py adını vereceğiz. Her iki dosyanın da aynı dizinde olması gerekmesinin nedeni, programa modülü nerede bulacağını göstermemiz gerekmesidir. Bu, yerleşik olmayan tüm yeni, özel modüller için geçerlidir:
|
1 2 3 4 5 |
# hello modülünü içe aktar import hello # Fonksiyonu çağır hello.world() |
Fonksiyonu çağırmak için modül adı için nokta gösterimini kullandık. Bunu yapmanın başka bir yolu da from...import yöntemini kullanmaktır. Burada, fonksiyonu world() olarak çağırmak için modülü from hello import world şeklinde içe aktaracağız. Son olarak, şu komutu çalıştırabilirsiniz:
|
1 |
python main_program.py |
Komut size aşağıdaki çıktıyı gösterecektir:
|
1 2 |
Çıktı: Hello, World! |
Bir Modüle Değişken Ekleme
Sırada, modüle tanımlamalar koyarak modüle nasıl değişken ekleneceğini görececeğiz:
|
1 2 3 4 5 6 |
# Bir fonksiyon tanımla def world(): print("Hello, World!") # Bir değişken tanımla shark = "Sammy" |
Ardından, değişkeni print() fonksiyonunda çağıracaksınız. Bunu main_program.py dosyası içinde çağıracağız:
|
1 2 3 4 5 6 7 |
# hello modülünü içe aktar import hello # Fonksiyonu çağır hello.world() # Değişkeni yazdır print(hello.shark) |
Programı çalıştırmak şu çıktıyı gösterecektir:
|
1 2 3 |
Çıktı: Hello, World! Sammy |
Bir Modüle Sınıf Ekleme
Son olarak, modül için dosyanızda nasıl bir sınıf tanımlayabileceğinizi görececeğiz. Örneğimize devam ederek, Octopus in the hello.py adında yeni bir sınıf oluşturacağız. Ayrıca buna name ve color özelliklerini atayacağız. Ardından, yazdırılabilir olmasını sağlamak için bir fonksiyon ekleyeceğiz:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Bir fonksiyon tanımlayın def world(): print("Merhaba, Dünya!") # Bir değişken tanımlayın shark = "Sammy" # Bir sınıf tanımlayın class Octopus: def __init__(self, name, color): self.color = color self.name = name def tell_me_about_the_octopus(self): print("Bu ahtapot " + self.color + ".") print(self.name + " ahtapotun adıdır.") |
Ardından, sınıfı main_program.py dosyasının sonuna yakın bir yere eklemelisiniz:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# hello modülünü içe aktarın import hello # Fonksiyonu çağırın hello.world() # Değişkeni yazdırın print(hello.shark) # Sınıfı çağırın jesse = hello.Octopus("Jesse", "turuncu") jesse.tell_me_about_the_octopus() |
Sınıfı hello.Octopus() komutuyla çağırabilirsiniz. Bu komut size dosyanın ad alanındaki Octopus sınıfının fonksiyonlarını ve özniteliklerini gösterecektir. Bu nedenle, jesse.tell_me_about_the_octopus() ifadesini, hello çağırmadan son satıra yazabilirsiniz. Ayrıca hello kullanmadan sınıfın bağımsız bir özniteliğini çağırmak da mümkündür. Örneğin, sadece jesse.color çalıştırabilirsiniz. Programı çalıştırdığınızda aşağıdaki çıktıyı gösterecektir:
|
1 2 3 4 5 |
Çıktı: Merhaba, Dünya! Sammy Bu ahtapot dir turuncu. Jesse dir theahtapot'un adı. |
Modüllerle Kod Uygulama
Modülleri tanımlamaları belirtmek için kullanabileceğiniz gibi, kod uygulamak için de kullanabilirsiniz. Diyelim ki world() fonksiyonunu uygulamak istiyoruz. İlk hello.py dosyamızı tamamen yeniden yazacağız:
|
1 2 3 4 5 6 |
# Bir fonksiyon tanımlayın def world(): print("Merhaba, Dünya!") # Modül içindeki fonksiyonu çağırın world() |
From the main_program.py dosyasından, içe aktarma ifadesi hariç her şeyi sileceğiz ve geriye şunları bırakacağız:
|
1 2 |
# hello modülünü içe aktarın import hello |
Program world() fonksiyonunu uygulayıp çalıştırdığı için ana program dosyasını çalıştırmak size bu çıktıyı verecektir:
|
1 2 |
Çıktı: Merhaba, Dünya! |
Başka Bir Dizinden Bir Modüle Nasıl Erişilir?
Artık modülleri nasıl oluşturacağınızı ve değiştireceğinizi bildiğinize göre, onlara başka bir dizinden nasıl erişeceğinizi bilmeniz gerekir. Bu, belirli bir modülü başka bir projede kullanmanız gerektiğinde yararlıdır. Bunu yapmanın aşağıda açıklayacağımız iki yolu vardır.
-
Yolları Ekleme
İlk yöntem, modülü zaten kullanmakta olan programlama dosyalarını kullanarak modül yolunu etkinleştirmektir. Ne yazık ki, bunu yapmak modülün tüm sistemde kullanılabilir olacağı anlamına gelmez. Bu nedenle, yalnızca geçici bir çözüm olarak kabul edilir. Genellikle projenin geliştirme aşamasında kullanılır.
Ekleme işlemine sys modülünü ve kullanmanız gereken diğer önemli modülleri içe aktararak başlayabilirsiniz. Bunları ana program dosyasına aktaracağız. sys modülünü Python Standart Kütüphanesinde bulabilirsiniz. Sisteminize özgü temel parametreleri ve fonksiyonları içerdiği için buna ihtiyacınız vardır.
Önceki örneğimizi bir kez daha ele alalım. Diyelim ki hello.py dosyası /usr/sammy/ yolunda ve main_program.py dosyası başka bir dizinde bulunuyor. Öncelikle sys modülünü kullanarak hello modülünü main_program.py dosyasına aktaracağız. Ardından, /usr/sammy/ yolunu ekleyeceğiz:
|
1 2 3 4 5 6 |
import sys sys.path.append('/usr/sammy/') import hello ... |
Yolu doğru ayarladıysanız, main_program.py file will run easily without errors. You will receive the same output as you did when both files were in the same directory.
-
Python Yolu
Seçebileceğiniz diğer seçenek Python yoludur. Burada, modülün kendisini Python'un modülleri ve paketleri kontrol ettiği bir yola eklersiniz. Muhtemelen tahmin edebileceğiniz gibi, bu durum modülü sistem genelinde kullanılabilir hale getirerek uygulanabilir kalıcı bir çözüm sunar.
Bunu yapmak için Python'un modülleri nerede aradığını bulmanız gerekir. Python yorumlayıcısını, şuna benzeyen programlama ortamından çalıştırmanız gerekecektir:
|
1 |
python |
Bir sonraki adım, sys modülünü içe aktarmaktır:
|
1 |
>>> import sys |
Ardından, sistem yolunu yazdırın:
|
1 |
>>> print(sys.path) |
Şimdi, çıktı olarak bir sistem yolu göreceksiniz. En az bir tane olacaktır. Ancak, bir programlama ortamında birkaç tane de olabilir. Listede, kullandığınız ortamı bulun. Modülü ana sistem Python yoluna da eklemek isteyebileceğinizi unutmayın. Şöyle görünecektir:
|
1 2 |
Çıktı: '/usr/sammy/my_env/lib/python3.5/site-packages' |
Son olarak, hello.py dosyasını bu dizine taşıyın ve modülü aşağıdaki gibi içe aktarın:
|
1 2 |
import hello ... |
Program dosyayı herhangi bir hata vermeden çalıştırırsa denemeniz başarılı olmuş demektir. Bu işlemin sonucunda, modüle sisteminizdeki herhangi bir dizinden erişebileceksiniz.
Sonuç
Bu öğreticinin amacı, Python modülü yazmaya aşina olmanıza yardımcı olmaktır. Bu, herhangi bir Python .py dosyasını nasıl yazacağınıza çok benzer. İlk olarak bir Python modülünün ve ilgili özelliklerin gerçekte ne olduğundan bahsettik. Ardından, bu tanımları Python'daki diğer programlama dosyalarında nasıl uygulayacağımızı keşfettik. Son olarak, modül erişilebilirliğinin ayrıntılarını çözdük. Artık Python 3'te nasıl modül yazacağınızı ve bunlara nasıl erişeceğinizi biliyorsunuz.
Python programlama dili hakkındaki bilgilerinizi daha da geliştirmek için, daha fazla kaynak için blogumuza başvurun:
- Python 3: Veri Türlerini Dönüştürme Kılavuzu
- Python 3'te Döngüler: Break, Continue ve Pass İfadelerini Kullanma
- Python 3 Karakter Dizisi Biçimlendiricilerini Kullanma
Keyifli Çalışmalar!
Yorumlar
Henüz yorum yapılmamış. İlk siz olun.