پایتھن چلتا ہے

مسئلہ : Python venv

حوالہ:

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" میں وضاحت کی گئی ہے۔

۔یہ GoF ڈیزائن پтерنز کی فہرست ہے

نام

تفصیل

فیکٹری میتھڈ

اشیاء بنائیں صحیح کلاس اناستنسिए کے لئے كئے بغیر

مجرد مصنع

اشیا کے مربوط یا مستند خاندان بنائیں ان کی ملموس کلاس کا ذکر نہ کیے بغير

بنانے والا

مخلوط اشیاء کی تعمیر کو اس کی نمائندگی سے الگ کر دیں تاکہ یکساں تعمیر کا عمل مختلف نمائندگیوں کو پیدا کر سکے۔

نمونہ

موجودہ نمونے کو کپی کر نئے اشیا بنائیں۔

سنگلٹن

کلاس کی انตัวٹییشن کو صرف ایک شے تک محدود کیا جاتا ہے۔

مطابق بنانا

کلاس کے انٹرفيس کو دوسرا انٹرفيس جو كلينت مت Expected ہے میں تبدیل کرتا ہے

پول

انتزاع کو اس کی تنفیذ سے الگ کریں تاکہ دونوں مستقل طور پر بدل سکیں۔

مرکب

درختی ڈھانچوں میں اشیاء کو شامل کریں تا جز-کل کے سلسلے کی نمائندگی کی جا سکے۔

سجاوٹ کرنے والا

ایک شیء پر ڈینامک طور پر اضافی ذمے جوڑیں۔

فیسڈ

ایک سسٹم کے اندر انٹرーフیسی کے ایک مجموعے کے لیے یکسانی انٹرéfیس فراہم کرتا ہے۔

ہلکا وزنی

خفیف اشیاء کی بنائ اور استعمال کے اخراجات کو کم کرتا ہے۔

پروکسی

ایک دیگر شیء کے لیے ایک بدیل یا جگہ محفوظ فراہم کرتا ہے تاکہ اس پر رسائی کو کنٹرول کیا جا سکے۔

ذمہ داری کی زنجیر

یہ ایک سے زیادہ اشیاء کو ایک طلب کی معالجہ کرنے کی اجازت دیتا ہے.

حکم

ایک درخواست کو ایک اشیاء میں لفاف کرکے، اس طرح کلیئنتس کو مختلف طلبات، کিউز یا لاگز کے ساتھ پارامیٹرائز کیا جا سکتا ہے اور واپس لینے والی آپریشنز کا ساتھ دینا ممکن بنایا جاتا ہے۔

ترجمان

ایک زبان کی گرائمر کی نمائندگی کریں اور اس نمائندگی کا استعمال اس زبان میں جملوں کی تعبیر کرنے کے لیے کریں۔

ایٹریٹر

یہ مجموعی اشیاء کے اجزاء کوسلسلہ وار گزرنا کا ایک طریقہ فراہم کرتا ہے، جس سے اس کی نیچے کی نمائندگی کو ظاہر نہیں کیا جاتا۔

وساط

اشیاء کے درمیان پیچیدہ وابستگیوں کو کم کرنے کی اجازت دیتا ہے، انہیں صرف یک mediator object کے ذریعے رابطہ کرنے پر مجبور کر کر۔

یادگار

یہ ایک شیئ کو اس کی قبلی حالت تک واپس لाने کی صلاحیت فراہم کرتا ہے (ایンキپسولیشن کو نقض کرنے کے بغیر).

دیکھیں

ایک object سے multiples objects تک ایک سے زیادہ (one-to-many) dependency کا تعین کرتا ہے، تاکہ جب کوئی object کی حالت تبدیل ہوتی ہے، تو اس کے تمام dependent خود بخود خبردار اور اپ ڈیٹ کر دیے جاتے ہیں۔

ریاست

ایک اشیاء کو اجازت دیتا ہے کہ وہ اپنے اندرونی حالت کے تبدیل ہونے پر اپنا سلوک بدلے۔

**استراتژی

فنکشنل پروگرامنگ

کتاب خانہ

URL

تفصیل

PyMonad

https://github.com/jasondelaat/pymonad

PyMonad، Python میں مونادِک ڈیٹر ساختوں کی ایک امپلیمنٹ ہے جو Haskell اور F# جیسے پروگرامنگ زبانوں پر مبنی ہے اور فنگکشنل پروگرامنگ میں عام طور پر استعمال ہونے والی موناد کی اقسام کے لیے امپلیمنٹس پیش کرتا ہے۔https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[مضمون]

PyFunctional

https://github.com/EntilZha/PyFunctional/

PyFunctional ایک Python لائبریری ہے جو فینکشنل پروگرامنگ کے لیے بنائی گئی ہے، جو صاف وظائف اور قابل تكرار اشیاء کے ساتھ کام کرنے کے لیے ٹولز فراہم کرتی ہے۔

Toolz

https://toolz.readthedocs.io/en/latest/

Toolz ایک Python لائبریری ہے جوفنکشنل پروگرامنگ کے لیے ہوتی ہے جو صافِ عمل (pure functions) اور iterables کے ساتھ کام کرنے کے لیے ٹولز فراہم کرتی ہے۔

Fn.py

https://github.com/kachayev/fn.py

Fn.py Python کے لیے ایک فائنکشنل پروگرامنگ لائبریری ہے جو pure functions اور iterables کے ساتھ کام کرنے کے لیے ٹولز فراہم کرتا ہے۔

ناریل

https://coconut-lang.org/

Coconut Python میں فینکشنل پروگرامنگ کے لیے کئی خصوصیات شامل کرتی ہے، جس میں پیٹرن ماچنگ شامل ہے۔https://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)

Articles connexes