LYTHON Telegram 67
ا Decorators یکی از قابلیت‌های پیشرفته و بسیار قدرتمند پایتون هستند که برای تغییر یا افزایش قابلیت‌های توابع یا کلاس‌ها استفاده می‌شوند، بدون اینکه نیاز به تغییر کد اصلی آن‌ها باشد. بیایید به طور کامل با این مفهوم آشنا شویم.

◀️ا Decorators در واقع توابعی هستند که به عنوان ورودی یک تابع دیگر را می‌گیرند و یک تابع جدید برمی‌گردانند که معمولاً رفتار تابع ورودی را تغییر می‌دهد یا بهبود می‌بخشد.
چرا از Decorators استفاده می‌کنیم؟

ا Decorators به ما این امکان را می‌دهند که:

کد قابل استفاده مجدد بنویسیم: می‌توانیم منطق اضافی مانند ثبت لاگ، احراز هویت، بررسی نوع داده‌ها و ... را در یک مکان مرکزی قرار دهیم.
جداسازی منطق: می‌توانیم منطق Decorators را از منطق اصلی تابع جدا کنیم.
کاهش تکرار کد: با استفاده از Decorators می‌توانیم از نوشتن کد تکراری در مکان‌های مختلف جلوگیری کنیم.

مثال ساده از Decorators

فرض کنید می‌خواهیم یک Decorators بنویسیم که زمان اجرای یک تابع را اندازه‌گیری کند. ابتدا، یک تابع Decorators تعریف می‌کنیم:


import time

def time_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Execution time of {func.__name__}: {end_time - start_time} seconds")
return result
return wrapper

حالا می‌توانیم از این Decorators برای یک تابع استفاده کنیم:


@time_decorator
def example_function():
time.sleep(2)
print("Function executed")

example_function()

توضیح کد

تعریف Decorators: time_decorator یک تابع است که تابع دیگری (func) را به عنوان ورودی می‌گیرد.
تعریف یک تابع داخلی (wrapper): این تابع داخلی تابع اصلی را احاطه می‌کند و وظیفه اندازه‌گیری زمان اجرای تابع اصلی را بر عهده دارد.
استفاده از @time_decorator: با استفاده از @time_decorator قبل از تعریف تابع example_function، تابع example_function با Decorators پیچیده می‌شود. حالا هر وقت example_function فراخوانی شود، در واقع wrapper اجرا می‌شود.

نتیجه

هنگامی که example_function را فراخوانی می‌کنیم، خروجی به صورت زیر خواهد بود:


Function executed
Execution time of example_function: 2.002345323562622 seconds

همانطور که می‌بینید، Decorators زمان اجرای تابع را محاسبه و چاپ می‌کند، در حالی که خود تابع اصلی بدون تغییر باقی می‌ماند.

Decorators در پایتون قابلیت‌های بسیار بیشتری دارند و می‌توانند به شکل‌های پیچیده‌تری استفاده شوند، اما این مثال ساده به شما یک دید کلی از نحوه عملکرد آن‌ها می‌دهد.
@lython



tgoop.com/lython/67
Create:
Last Update:

ا Decorators یکی از قابلیت‌های پیشرفته و بسیار قدرتمند پایتون هستند که برای تغییر یا افزایش قابلیت‌های توابع یا کلاس‌ها استفاده می‌شوند، بدون اینکه نیاز به تغییر کد اصلی آن‌ها باشد. بیایید به طور کامل با این مفهوم آشنا شویم.

◀️ا Decorators در واقع توابعی هستند که به عنوان ورودی یک تابع دیگر را می‌گیرند و یک تابع جدید برمی‌گردانند که معمولاً رفتار تابع ورودی را تغییر می‌دهد یا بهبود می‌بخشد.
چرا از Decorators استفاده می‌کنیم؟

ا Decorators به ما این امکان را می‌دهند که:

کد قابل استفاده مجدد بنویسیم: می‌توانیم منطق اضافی مانند ثبت لاگ، احراز هویت، بررسی نوع داده‌ها و ... را در یک مکان مرکزی قرار دهیم.
جداسازی منطق: می‌توانیم منطق Decorators را از منطق اصلی تابع جدا کنیم.
کاهش تکرار کد: با استفاده از Decorators می‌توانیم از نوشتن کد تکراری در مکان‌های مختلف جلوگیری کنیم.

مثال ساده از Decorators

فرض کنید می‌خواهیم یک Decorators بنویسیم که زمان اجرای یک تابع را اندازه‌گیری کند. ابتدا، یک تابع Decorators تعریف می‌کنیم:


import time

def time_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Execution time of {func.__name__}: {end_time - start_time} seconds")
return result
return wrapper

حالا می‌توانیم از این Decorators برای یک تابع استفاده کنیم:


@time_decorator
def example_function():
time.sleep(2)
print("Function executed")

example_function()

توضیح کد

تعریف Decorators: time_decorator یک تابع است که تابع دیگری (func) را به عنوان ورودی می‌گیرد.
تعریف یک تابع داخلی (wrapper): این تابع داخلی تابع اصلی را احاطه می‌کند و وظیفه اندازه‌گیری زمان اجرای تابع اصلی را بر عهده دارد.
استفاده از @time_decorator: با استفاده از @time_decorator قبل از تعریف تابع example_function، تابع example_function با Decorators پیچیده می‌شود. حالا هر وقت example_function فراخوانی شود، در واقع wrapper اجرا می‌شود.

نتیجه

هنگامی که example_function را فراخوانی می‌کنیم، خروجی به صورت زیر خواهد بود:


Function executed
Execution time of example_function: 2.002345323562622 seconds

همانطور که می‌بینید، Decorators زمان اجرای تابع را محاسبه و چاپ می‌کند، در حالی که خود تابع اصلی بدون تغییر باقی می‌ماند.

Decorators در پایتون قابلیت‌های بسیار بیشتری دارند و می‌توانند به شکل‌های پیچیده‌تری استفاده شوند، اما این مثال ساده به شما یک دید کلی از نحوه عملکرد آن‌ها می‌دهد.
@lython

BY روزمرگی های یک برنامه نویس


Share with your friend now:
tgoop.com/lython/67

View MORE
Open in Telegram


Telegram News

Date: |

Your posting frequency depends on the topic of your channel. If you have a news channel, it’s OK to publish new content every day (or even every hour). For other industries, stick with 2-3 large posts a week. In 2018, Telegram’s audience reached 200 million people, with 500,000 new users joining the messenger every day. It was launched for iOS on 14 August 2013 and Android on 20 October 2013. Joined by Telegram's representative in Brazil, Alan Campos, Perekopsky noted the platform was unable to cater to some of the TSE requests due to the company's operational setup. But Perekopsky added that these requests could be studied for future implementation. A Telegram channel is used for various purposes, from sharing helpful content to implementing a business strategy. In addition, you can use your channel to build and improve your company image, boost your sales, make profits, enhance customer loyalty, and more. Telegram desktop app: In the upper left corner, click the Menu icon (the one with three lines). Select “New Channel” from the drop-down menu.
from us


Telegram روزمرگی های یک برنامه نویس
FROM American