Catatan Python
Diterbitkan 19 November 2023
Instal python di windows
Menjalankan python
cd mon_projet
python -m venv mon_venv
source mon_venv/bin/activate
# Sur windows
mon_venv\Scripts\activate
deactivate
persyaratan instalasi
pip install -r requirements.txt
pendahuluan
Pola Desain GoF dalam Python
Design pattern GoF adalah sekumpulan 23 design pattern yang dijelaskan dalam buku "Design Patterns: Elements of Reusable Object-Oriented Software".
Nama |
Deskripsi |
Metode Pabrik |
Buat objek tanpa menentukan kelas yang tepat untuk diinstansiasi. |
Pabrik Abstrak |
Buat keluarga objek terkait atau dependen tanpa menentukan kelas konkritnya. |
Pembuat |
Memisahkan pembuatan objek kompleks dari representasinya sehingga proses pembuatan yang sama dapat membuat representasi yang berbeda. |
prototipe |
Membuat objek baru dengan menyalin prototipe yang ada. |
Singleton |
Membatasi instansiasi kelas menjadi satu objek saja. |
adaptor |
Mengubah antarmuka suatu kelas menjadi antarmuka lain yang diharapkan oleh klien. |
bridge |
Memisahkan abstraksi dari implementasinya sehingga keduanya dapat berubah secara independen. |
komposit |
Buat objek dalam struktur pohon untuk merepresentasikan hierarki bagian-keseluruhan. |
dekorator |
Melampirkan secara dinamis tanggung jawab tambahan ke sebuah objek. |
fasad |
Memberikan satu antarmuka terpadu ke sekumpulan antarmuka dalam sebuah subsistem. |
Flyweight |
Mengurangi biaya pembuatan dan penggunaan objek ringan. |
Proxy |
Memberikan pengganti atau placeholder untuk objek lain untuk mengontrol akses padanya. |
Rantai Tanggung Jawab |
Mengizinkan lebih dari satu objek untuk memproses permintaan. |
perintah |
Mengenkapsulasi sebuah permintaan dalam sebuah objek, sehingga memungkinkan klien dikonfigurasi dengan permintaan yang berbeda, antrian atau log, dan mendukung operasi yang dapat dibatalkan. |
penerjemah |
Berikan representasi tata bahasa suatu bahasa dan gunakan representasi tersebut untuk menafsirkan kalimat dalam bahasa tersebut. |
Iterator |
Memberikan cara untuk melintasi secara berurutan elemen dari objek gabungan tanpa mengekspos representasi dasarnya. |
perantara |
Memungkinkan untuk mengurangi dependensi kompleks antara objek dengan membuat mereka berkomunikasi hanya melalui objek mediator. |
kenangan |
Memberikan kemampuan untuk mengembalikan objek ke kondisi sebelumnya (tanpa melanggar enkapsulasi). |
Pengamat |
Menetapkan ketergantungan satu-ke-banyak antara objek sehingga ketika sebuah objek mengubah statusnya, semua dependennya diberi tahu dan diperbarui secara otomatis. |
Negara |
Memungkinkan suatu objek untuk mengubah perilaku ketika mengubah keadaan internalnya |
Strategi |
Menentukan sebuah keluarga algoritma, mengenkapsulasi masing-masingnya dan membuatnya dapat ditukar. |
Metode Templat |
Menetapkan kerangka sebuah algoritma dalam sebuah metode, mendelegasikan beberapa langkah ke subkelas. |
pengunjung |
Memungkinkan untuk mendefinisikan operasi baru yang harus dilakukan pada struktur objek tanpa mengubah kelas objek yang padanya ia beroperasi. |
Pemrograman fungsional
perpustakaan |
URL |
Keterangan |
PyMonad |
PyMonad adalah implementasi struktur data monadik dalam Python yang berdasarkan bahasa pemrograman seperti Haskell dan F# dengan implementasi untuk tipe monad yang paling umum digunakan dalam pemrograman fungsional.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[artikel] |
|
PyFunctional |
PyFunctional adalah perpustakaan Python untuk pemrograman fungsional yang menyediakan alat untuk bekerja dengan fungsi murni dan iterabel. |
|
Toolz |
Toolz adalah pustaka Python untuk pemrograman fungsional yang menyediakan alat untuk bekerja dengan fungsi murni dan iterable. |
|
Fn.py |
Fn.py adalah sebuah pustaka Python untuk pemrograman fungsional yang menyediakan alat untuk bekerja dengan fungsi murni dan iterable. |
|
kelapa |
Coconut menambahkan beberapa fitur ke Python untuk pemrograman fungsional, termasuk pencocokan pola.https://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[percakapan sof] |
efek samping
perulangan
# impérative way
result = []
for i in inputs:
x = f(g(i))
result.append(x)
# idiomatic way
result = map(comp(f,g), inputs)