یادداشت پایتون
منتشر شده در 19 November 2023
پایتون را روی ویندوز نصب کنید
اجرای پایتون
cd mon_projet
python -m venv mon_venv
source mon_venv/bin/activate
# Sur windows
mon_venv\Scripts\activate
deactivate
نیاز برای نصب
pip install -r requirements.txt
الگوهای طراحی GoF در پایتون
الگوپترنهای GoF یک مجموعهٔ 23 الگوپترن هستند که در کتاب «Design Patterns: Elements of Reusable Object-Oriented Software» توصیف شدهاند.
نام |
توضیح |
متد کارخانه |
اشیاء ایجاد کنید بدون تعریف دقیق کلاس مورد نظر برای نمونهسازی. |
کارخانه انتزاعی |
خانوادههای شیء مرتبط یا وابسته را بدون تعیین کلاس ملموس آنها ایجاد میکند. |
سازنده |
ساخت یک شیء پیچیده را از نمایش آن جدا میکند تا همان فرآیند ساخت بتواند نمایشهای مختلفی ایجاد کند. |
نمونه اولیه |
اشیاء جدید را با کپی کردن یک نمونه موجود ایجاد میکند. |
سینگلتون |
ساخت یک کلاس را به یک شیء محدود میکند. |
آداپتور |
انترفیس یک کلاس را به یک انترفیس دیگر تبدیل میکند که مشتری آن را انتظار دارد. |
پل |
یک انتزاع را از پیادهسازی آن جدا کنید تا هر دو بتوانند به صورت مستقل تغییر کنند. |
ترکیبی |
اشیا را در ساختارهای درختی ترکیب کنید تا سلسلهمراتبات part-to-whole را نمایش دهید. |
دکوراسیون دهنده |
بهصورت پویا وظایف اضافی را به یک شیء متصل میکند. |
فاساد |
یک اینترفیس یکپارچه به یک مجموعه از اینترفیسها در یک زیرسیستم ارائه میدهد. |
وزن پرچند |
هزینهٔ ساخت و استفاده از اشیاء سبک را کاهش میدهد. |
وکیل |
یک جایگزین یا یک مکان رزرو شده برای یک شیء دیگر ارائه میدهد تا دسترسی به آن کنترل شود. |
زنجیره مسئولیت |
اجازهٔ پردازش یک درخواست توسط بیش از یک شیء را میدهد. |
دستور |
یک درخواست را در یک شیء کپسولهسازی میکند؛ به این ترتیب امکان تنظیم مشتریان با درخواستهای مختلف، صفهای انتظار یا لاگها فراهم میشود و امکان پشتیبانی از عملیاتهای قابل بازگشت نیز فراهم میشود. |
ترجمان |
یک نمایش از گرامر یک زبان بده و از این نمایش برای تفسیر جملات در آن زبان استفاده کن. |
تکرارشونده |
یک راه برای پیمایش بهصورت متوالی عناصر یک شیء تجمیعشده فراهم میآورد، بدون افشای نمایش زیرین آن. |
واسطه |
به کاهش وابستگیهای پیچیده بین اشیا به وسیلهٔ این که آنها را فقط از طریق یک شیء متّصلکننده (mediator) به تعامل میرساند. |
یادآور |
قدرت بازگرداندن شیء به حالت پیشین خود را فراهم میسازد (بدون نقض پشتپوشی). |
مشاهدهکننده |
یک وابستگی یک به چند بین اشیاء تعریف میکند به طوری که وقتی یک شیء وضعیتش تغییر میکند، تمام وابستههای آن بهصورت خودکار اطلاع داده و بهروزرسانی میشوند. |
دولت |
اجازه میدهد تا یک شیء وقتی حالت داخلیاش تغییر میکند، رفتارش را تغییر دهد. |
استراتژی |
یک خانواده از الگوریتمها را تعریف میکند، هر کدام را کپسولهسازی میکند و آنها را قابل تعویض میسازد. |
روش الگو |
ساختار یک الگوریتم را در یک روش تعریف میکند و برخی مراحل را به زیرکلاسها واگذار میکند. |
بازدیدکننده |
اجازه میدهد تا یک عملیات جدید بر روی یک ساختار اشیاء تعریف شود بدون تغییر کلاسهای اشیایی که بر روی آنها عمل میشود. |
برنامهنویسی تابعی
کتابخانه |
URL |
توضیح |
PyMonad |
PyMonad یک پیادهسازی از ساختارهای داده مونادیک در پایتون است که بر اساس زبانهای برنامهنویسی مثل هاسکال و F# ساخته شده و برای انواع مونادهای رایج در برنامهنویسی فانکشنال پیادهسازیهای لازم را فراهم میکند.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[مقاله] |
|
PyFunctional |
PyFunctional یک کتابخانه پایتون برای برنامهنویسی تابعی است که ابزارهایی برای کار با توابع خالص و قابل تکرار فراهم میکند. |
|
تولز |
Toolz یک کتابخانهٔ Python برای برنامهنویسی تابعی است که ابزارهایی برای کار با توابع خالص و تکرارپذیرها فراهم میکند. |
|
Fn.py |
Fn.py یک کتابخانهٔ پایتون برای برنامهنویسی تابعی است که ابزارهایی برای کار با توابع صاف و Iterableها فراهم میآورد. |
|
نارگیل |
Coconut چندین ویژگی را به پایتون برای برنامهنویسی عملکردی اضافه میکند، از جمله pattern matchinghttps://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[گفتگو sof] |
آثار جانبی
حلقهها
# impérative way
result = []
for i in inputs:
x = f(g(i))
result.append(x)
# idiomatic way
result = map(comp(f,g), inputs)