Python Notu
Yayınlandı: 19 November 2023
Windows’ta Python kurun
Python çalıştırılıyor
cd mon_projet
python -m venv mon_venv
source mon_venv/bin/activate
# Sur windows
mon_venv\Scripts\activate
deactivate
kurulum gereksinimi
pip install -r requirements.txt
başlangıç
Python’da GoF’in Design Patterns
GoF tasarım kalıpları, 'Design Patterns: Elements of Reusable Object-Oriented Software' kitabında tanımlanan 23 tasarım kalıptan oluşan bir setir.
GoF tasarım desenlerinin listesi
| İsim | Açıklama |
|---|---|
Fabrika Metodu |
Kesin sınıfı belirtmeden nesneler oluşturur. |
Soyut Fabrika |
Somut sınıflarını belirtmeden ilişkin veya bağımlı nesne aileleri oluştur. |
yapımcı |
Karmaşık bir nesnenin oluşturmasını temsillerinden ayırır, böylece aynı oluşturma süreci farklı temsiller oluşturabilir. |
prototiip |
Mevcut bir prototip kopyalanarak yeni nesneler oluştur. |
Tek örnek |
Bir sınıfın örnek oluşturmasını tek bir nesneye kısıtlar. |
adaptör |
Bir sınıfın arayüzünü istemcinin beklediği başka bir arayüze dönüştürür. |
Köprü |
Bir soyutlamayı uygulamadan ayırır, böylece ikisi de bağımsız olarak değişebilir. |
Kompozit |
Nesneleri ağaç yapılarında birleştirerek, bölüm-tüm hiyerarşilerini temsil edin. |
Dekoratör |
Dinamik olarak nesneye ek sorumluluklar ekle. |
cephe |
Bir alt sistemdeki arayüz setine tek bir arayüz sağlar. |
pena |
Hafif nesnelerin oluşturulması ve kullanımının maliyetini azaltır. |
proxy |
Başka bir nesnenin erişimini kontrol etmek için bir yerine geçer veya yer tutucu sağlar. |
Sorumluluk zinciri |
Birden fazla nesnenin bir isteği işlemesine izin verir. |
Komut |
Bir istek bir nesneye sarmalanarak, böylece farklı istekler, kuyruklar veya günlükler ile istemciler yapılandırılabilir ve iptal edilebilir işlemler desteklenebilir. |
Yorumlayıcı |
Bir dilin dilbilgisinin bir temsili ver ve bu temsili kullanarak o dildeki cümleleri yorumla. |
Yineleyici |
Bir agregeli nesnenin elemanlarını ardışık olarak gezinmenin bir yolunu sunar, temel gösterimini açığa çıkarmadan. |
Araçı |
Objeler arasındaki karmaşık bağımlılıkları, bir aracı nesne yoluyla sadece birbirleriyle iletişim kurmalarını sağlayarak azaltmaya olanak tanır. |
Hatırlatma |
Bir nesneyi önceki durumuna geri yükleme yeteneği sağlar (kapsüllemeyi ihlal etmeden). |
Gözlemlemek |
Nesneler arasında bir-çok (one-to-many) bağımlılık tanımlar; böylece bir nesnenin durumu değiştiğinde tüm bağımlıları otomatik olarak bilgilendirilir ve güncellenir. |
Devlet |
Bir nesnenin, iç durumunun değiştiğinde davranışını değiştirmesine olanak sağlar. |
Strateji |
Bir algoritma ailesi tanımlar, her birini sarmalar ve bunların yer değiştirilebilir olmasını sağlar. |
Şablon Yöntemi |
Bir yöntemde bir algoritmanın iskeletini tanımlar, bazı adımları alt sınıflara devreder. |
ziyaretçi |
Bir nesne yapısında, nesnelerinin sınıflarını değiştirmeden yeni bir işlem tanımlamaya olanak tanır. |
Fonksiyonel programlama
kütüphane |
URL |
Açıklama |
PyMonad |
PyMonad, Haskell ve F# gibi programlama dillerine dayalı Python’daki monadik veri yapıları uygulamasıdır ve fonksiyonel programlamada sıkça kullanılan monad tipleri için uygulamalara sahiptir.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[makale] |
|
PyFunctional |
PyFunctional, fonksiyonel programlama için bir Python kütüphanesi olup, pure fonksiyonlar ve iterable’larla çalışmak için araçlar sağlar. |
|
Araçlar |
Toolz, fonksiyonel programlama için Python kütüphanesidir ve temiz fonksiyonlarla ve yinelenebilirlerle çalışmak için araçlar sağlar. |
|
Fn.py |
Fn.py, fonksiyonel programlama için bir Python kütüphanesi olup, saf fonksiyonlarla ve iterable’larla çalışmak için araçlar sağlar. |
|
Coconut |
Coconut, Python’a fonksiyonel programlama için birkaç özellik ekler, bunlar arasında pattern matching yer alır.https://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[konuşma sof] |
yan etkiler
döngüler
# impérative way
result = []
for i in inputs:
x = f(g(i))
result.append(x)
# idiomatic way
result = map(comp(f,g), inputs)