کانسپت های کم تر شناخته شده اما کاربردی زبان پایتون 🐍

  1. Decorators

دکوریتور ابزار فوق العاده کاربردی هستش برای تغییر رفتار یه متد یا فانکشن به کار میره.ورودی دکوریتور ها همیشه یک چیزه اونم تابعه! دکوریتور یه تابع رو به عنوان ورودی دریافت میکنه و روی رفتارش تاثیر میگذاره و در نهایت ریترنش میکنه.بله درست حدس زدی خود دکوریتور هم یه فانکشنه
برای مثال به کد زیر دقت کنید:


def decorator(func:function):
    def wrapper():
        print("Decorator started")
        func()
        print("Decorator finished")
    return wrapper

@decorator
def do_somthing():
    print("Bla bla bla")
    ...

اینجا یه دکوریتور داریم که یه فانکشن در ورودی میگیره و یه ساب فانکشن داره که کارش wrap کردن(در بر گرفتن)‌هستش که یه عملیو انجام میده , تابع گرفته شده رو کال میکنه و در نهایت ریترن میشه!

2. Asyncio
این کانسپت فوق العاده کاربردی و مهم هستش و از طرفی هم پیچیدگی های خودش رو داره و نمیشه اینجا خیلی باز توضیح یا آموزشش داد ولی به طور کلی خیلی واضح بخوام بگم:

اسینک برای ما توی پایتون Concurrency رو به ارمغان میاره.اینکه شما بتونید برنامه های Asynchronous بنویسید و سرعت برنامه هایی که عملیات I/O Bound رو انجام میدن افزایش بدید.(این کانسپت خیلی جا داره در موردش صحبت بشه برای همین توی یه پست دیگه بهش میپردازم).
3. Inline loops

فرض کنید میخواید یه لیست رو پیمایش کنید و روی همه ایتم هاش یه عملی رو انجام بدید.معمولا یه همچین کدی مینویسید:

items = [2,6,8,5,3]
new_items = []
for i in items:
    new_items.append(i**2)
print(new_items)

اینجا شما یه لیست عدد داشتید و خواستید همشونو به توان ۲ برسید و چاپ کنید اما بیاید یه روش خیلی بامزه از حلقه های تک لاینی بهتون بگم:

items = [2,6,8,5,3]
print([i**2 for i in items])

به همین راحتی شما یه حلقه تک لاینه تر تمیز دارید :)

4. Inline conditions

بیاید برای شرط ها هم یه روش تک لاینه بنویسیم :

i = 8
return True if i > 5 else False

دیدید چقدر راحت یه شرط تک لاینه داریم :) (البته این مدلی کد نوشتن حرفه ای بودن شما رو نمیرسونه بلکه حرفه ای کسیه که کد قابل فهم برای سایر برنامه نویس ها بنویسه)

اگر خوشتون بیاد تو پست های بعدی به موارد و کانسپت های کمتر شناخته شده پایتون میپردازم :)