Modül ve Paketler, Python’da kendi modül ve paketlerinizi oluşturmak, kodunuzu daha modüler, organize ve yeniden kullanılabilir hale getirmenin harika bir yoludur. Bu, büyük projelerde kodun yönetimini kolaylaştırır ve tekrar kullanılabilirliği artırır. Kendi modül ve paketlerinizi oluşturmak oldukça basittir ve birkaç adımı içerir.
1. Python Modülleri Oluşturma
Bir Python modülü, tek bir .py
dosyasından oluşur ve bu dosya içinde fonksiyonlar, sınıflar veya değişkenler tanımlanabilir. Bu modül daha sonra başka Python dosyalarında kullanılabilir.
a. Modül Oluşturma
Öncelikle, bir modül oluşturmak için bir Python dosyası oluşturmanız gerekir. Örneğin, mymodule.py
adında bir dosya oluşturabilirsiniz:
mymodule.py
:
# mymodule.py
def selamla(isim):
return f"Merhaba, {isim}!"
def topla(a, b):
return a + b
b. Modülü Kullanma
Oluşturduğunuz modülü başka bir Python dosyasında kullanmak için import
ifadesini kullanabilirsiniz.
main.py
:
# main.py
import mymodule
mesaj = mymodule.selamla("Ayşe")
print(mesaj) # Merhaba, Ayşe!
sonuc = mymodule.topla(5, 10)
print(sonuc) # 15
Bu örnekte, mymodule.py
dosyasındaki selamla
ve topla
fonksiyonları main.py
dosyasında kullanılır.
2. Python Paketleri Oluşturma
Bir paket, birden fazla modülü içeren bir dizindir. Paketler, modülleri mantıksal gruplar halinde organize etmek ve büyük projeleri yönetmek için kullanılır.
a. Paket Oluşturma
Bir paket oluşturmak için, bir dizin oluşturun ve bu dizine bir __init__.py
dosyası ekleyin. __init__.py
dosyası, dizini bir Python paketi olarak tanımlar. Bu dosya boş olabilir veya paket başlatma kodu içerebilir.
Dizin Yapısı:
mypackage/
__init__.py
module1.py
module2.py
mypackage/module1.py
:
def fonksiyon1():
return "Bu, module1'deki bir işlevdir."
mypackage/module2.py
:
def fonksiyon2():
return "Bu, module2'deki bir işlevdir."
b. Paketi Kullanma
Paket içindeki modülleri kullanmak için import
ifadesini kullanabilirsiniz.
main.py
:
# main.py
from mypackage import module1, module2
print(module1.fonksiyon1()) # Bu, module1'deki bir işlevdir.
print(module2.fonksiyon2()) # Bu, module2'deki bir işlevdir.
Bu örnekte, mypackage
içindeki module1
ve module2
modülleri main.py
dosyasında kullanılır.
3. Alt Paketler (Subpackages) Oluşturma
Bir paket içinde başka paketler (alt paketler) oluşturabilirsiniz. Bu durumda, alt paketler de kendi __init__.py
dosyasına sahip olmalıdır.
a. Alt Paket Oluşturma
Alt paketler, ana paket içinde yer alan dizinlerdir. Bu dizinler, kendi modüllerini veya başka alt paketleri içerebilir.
Dizin Yapısı:
mypackage/
__init__.py
module1.py
subpackage/
__init__.py
submodule.py
mypackage/subpackage/submodule.py
:
def sub_fonksiyon():
return "Bu, submodule'deki bir işlevdir."
b. Alt Paketi Kullanma
Alt paket içindeki modülleri kullanmak için from ... import ...
ifadesini kullanabilirsiniz.
main.py
:
# main.py
from mypackage.subpackage.submodule import sub_fonksiyon
print(sub_fonksiyon()) # Bu, submodule'deki bir işlevdir.
Bu örnekte, mypackage
içindeki subpackage
alt paketindeki submodule
modülü main.py
dosyasında kullanılır.
4. Paket ve Modül Adlarını Düzenleme
Python modül ve paket adları, küçük harfler ve alt çizgiler (_
) kullanılarak adlandırılmalıdır. Bu, Python topluluğunda yaygın olarak kabul edilen bir stil kuralıdır.
5. Paketlerin ve Modüllerin Dağıtımı
Eğer oluşturduğunuz modüller ve paketler geniş bir kullanıcı kitlesine hitap edecekse, bunları dağıtmak isteyebilirsiniz. Python paketlerini dağıtmak için setuptools
kullanabilir ve bunları PyPI’ye yükleyebilirsiniz.
a. setup.py
Dosyası Oluşturma
Bir Python paketi dağıtmak için setup.py
adlı bir dosya oluşturmanız gerekir. Bu dosya, paket hakkında bilgi içerir ve paket kurulumunu yönetir.
Örnek setup.py
:
from setuptools import setup, find_packages
setup(
name="mypackage",
version="0.1",
packages=find_packages(),
install_requires=[
# Burada gerekli dış kütüphaneleri belirtebilirsiniz
],
)
b. Paket Yükleme ve Dağıtma
Paketinizi PyPI’ye yüklemek için twine
kullanabilirsiniz. Ancak, bu adımlar daha ileri düzeydeki dağıtım işlemlerini içerir.
6. Modül ve Paket Testleri
Modüllerinizi ve paketlerinizi test etmek için Python’un yerleşik unittest
modülünü veya popüler üçüncü taraf test kütüphanesi pytest
‘i kullanabilirsiniz.
a. Basit Bir Test
# test_mymodule.py
import unittest
from mymodule import selamlaclass TestMyModule(unittest.TestCase):
def test_selamla(self):
self.assertEqual(selamla("Ayşe"), "Merhaba, Ayşe!")if __name__ == "__main__":
unittest.main()
Bu örnekte, selamla
fonksiyonu test edilir ve beklendiği gibi çalışıp çalışmadığı kontrol edilir.
Modül ve Paketler, Python’da kendi modül ve paketlerinizi oluşturmak, kodunuzu daha düzenli, modüler ve yeniden kullanılabilir hale getirir. Modüller, tek bir Python dosyasından oluşurken, paketler birden fazla modülü içeren dizinlerdir. Bu yapılar, büyük projelerde kodun yönetimini kolaylaştırır ve farklı projeler arasında kodun tekrar kullanılmasına olanak tanır. Ayrıca, kendi modüllerinizi ve paketlerinizi test etmek ve dağıtmak için de gerekli araçlar ve yöntemler mevcuttur.
Bir yanıt yazın