📚 دوره آموزش پایتون از 0 تا 100
پارت ۱۷: Decorators و Generators 🚀
در این پارت با دو مفهوم پیشرفته در پایتون یعنی Decorators و Generators آشنا میشویم. این دو ابزار به شما کمک میکنند تا کدهای خواناتر، ماژولارتر و بهینهتری بنویسید.
۱. Decorators 🎨
Decorators یکی از ویژگیهای قدرتمند پایتون است که به شما اجازه میدهد تا رفتار توابع یا کلاسها را بدون تغییر در کد اصلی آنها، اصلاح کنید.
۱.۱. تعریف یک Decorator
یک decorator در واقع یک تابع است که یک تابع دیگر را به عنوان ورودی میگیرد و یک تابع جدید را برمیگرداند.
در این مثال:
-
-
۱.۲. Decorators با آرگومانها
در این مثال:
-
۲. Generators 🔄
Generators به شما اجازه میدهند تا به راحتی iteratorهای خود را تعریف کنید. آنها به جای برگرداندن یک لیست کامل، یک به یک مقادیر را تولید میکنند که باعث بهینهتر شدن حافظه میشود.
۲.۱. تعریف یک Generator
در این مثال:
-
-
۲.۲. Generators با تابع
در این مثال:
-
- با استفاده از
نکات مهم
- Decoratorها: برای تزئین توابع و تغییر رفتار آنها بدون تغییر در کد اصلی استفاده میشوند. آنها میتوانند به توابعی با آرگومانهای مختلف اعمال شوند.
- Generatorها: برای ایجاد iteratorهای کارآمد و بهینه استفاده میشوند. آنها مقادیر را به صورت lazy evaluation تولید میکنند که باعث کاهش استفاده از حافظه میشود.
این دو مفهوم به شما کمک میکنند تا کدهای پیچیدهتر و بهینهتری در پایتون بنویسید. امیدوارم این آموزش برای شما مفید بوده باشد! 🌟
🔻برای دیدن آموزش های مفید بیشتر اینجا کلیک کن
#پایتون #آموزش_پایتون #Decorators #Generators #PythonAdvanced #PythonProgramming
پارت ۱۷: Decorators و Generators 🚀
در این پارت با دو مفهوم پیشرفته در پایتون یعنی Decorators و Generators آشنا میشویم. این دو ابزار به شما کمک میکنند تا کدهای خواناتر، ماژولارتر و بهینهتری بنویسید.
۱. Decorators 🎨
Decorators یکی از ویژگیهای قدرتمند پایتون است که به شما اجازه میدهد تا رفتار توابع یا کلاسها را بدون تغییر در کد اصلی آنها، اصلاح کنید.
۱.۱. تعریف یک Decorator
یک decorator در واقع یک تابع است که یک تابع دیگر را به عنوان ورودی میگیرد و یک تابع جدید را برمیگرداند.
def my_decorator(func):
def wrapper():
print("Something is happening before the function is called.")
func()
print("Something is happening after the function is called.")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
در این مثال:
-
my_decorator
یک decorator است که تابع say_hello
را تزئین میکند.-
@my_decorator
قبل از تعریف say_hello
باعث میشود که say_hello
به صورت خودکار با my_decorator
تزئین شود.۱.۲. Decorators با آرگومانها
def repeat(n):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(n):
func(*args, **kwargs)
return wrapper
return decorator
@repeat(3)
def greet(name):
print(f"Hello, {name}!")
greet("Alice")
در این مثال:
-
repeat
یک decorator با آرگومان است که تابع greet
را ۳ بار اجرا میکند.۲. Generators 🔄
Generators به شما اجازه میدهند تا به راحتی iteratorهای خود را تعریف کنید. آنها به جای برگرداندن یک لیست کامل، یک به یک مقادیر را تولید میکنند که باعث بهینهتر شدن حافظه میشود.
۲.۱. تعریف یک Generator
def count_up_to(max):
count = 1
while count <= max:
yield count
count += 1
counter = count_up_to(5)
for num in counter:
print(num)
در این مثال:
-
count_up_to
یک generator است که از ۱ تا max
را تولید میکند.-
yield
به جای return
استفاده شده است که مقادیر را یکی یکی تولید میکند.۲.۲. Generators با تابع
next()
def simple_gen():
yield 1
yield 2
yield 3
gen = simple_gen()
print(next(gen)) # 1
print(next(gen)) # 2
print(next(gen)) # 3
در این مثال:
-
simple_gen
یک generator ساده است که مقادیر ۱، ۲ و ۳ را تولید میکند.- با استفاده از
next()
میتوان مقادیر بعدی را از generator دریافت کرد.نکات مهم
- Decoratorها: برای تزئین توابع و تغییر رفتار آنها بدون تغییر در کد اصلی استفاده میشوند. آنها میتوانند به توابعی با آرگومانهای مختلف اعمال شوند.
- Generatorها: برای ایجاد iteratorهای کارآمد و بهینه استفاده میشوند. آنها مقادیر را به صورت lazy evaluation تولید میکنند که باعث کاهش استفاده از حافظه میشود.
این دو مفهوم به شما کمک میکنند تا کدهای پیچیدهتر و بهینهتری در پایتون بنویسید. امیدوارم این آموزش برای شما مفید بوده باشد! 🌟
🔻برای دیدن آموزش های مفید بیشتر اینجا کلیک کن
#پایتون #آموزش_پایتون #Decorators #Generators #PythonAdvanced #PythonProgramming
👍5
نکته مهم در پایتون: استفاده از Decorators
در پایتون، Decorators یا دکوراتورها یکی از ابزارهای قدرتمند و پرکاربرد هستند که به شما این امکان را میدهند تا عملکرد یک تابع یا متد را بدون تغییر در کد اصلی آن، تغییر دهید یا گسترش دهید. 🌟
دکوراتور چیست؟
دکوراتور یک تابع است که یک تابع دیگر را به عنوان ورودی میگیرد و یک تابع جدید را برمیگرداند که معمولاً عملکردی اضافی به تابع اصلی اضافه میکند. 🎩✨
مثال:
فرض کنید میخواهید زمان اجرای یک تابع را اندازهگیری کنید. با استفاده از دکوراتور، میتوانید این کار را به سادگی انجام دهید.
در این مثال:
1. دکوراتور
2. با استفاده از
3. هر بار که
کاربردهای دکوراتورها:
- ورود و خروج: برای ثبت ورود و خروج به توابع.
- کنترل دسترسی: برای مدیریت دسترسی به توابع.
- مدیریت منابع: برای مدیریت منابع مانند باز و بسته کردن فایلها.
- ارزیابی عملکرد: برای اندازهگیری عملکرد توابع.
به یاد داشته باشید: دکوراتورها میتوانند خوانایی و مدیریت کد را بهبود بخشند، به شرطی که به درستی و با دقت استفاده شوند. 🎯📈
🔻بیا اینجا تا بیشتر یاد بگیری
#Python #CodingTips #Decorators #Programming #PythonTips #PythonTricks #LearnPython
در پایتون، Decorators یا دکوراتورها یکی از ابزارهای قدرتمند و پرکاربرد هستند که به شما این امکان را میدهند تا عملکرد یک تابع یا متد را بدون تغییر در کد اصلی آن، تغییر دهید یا گسترش دهید. 🌟
دکوراتور چیست؟
دکوراتور یک تابع است که یک تابع دیگر را به عنوان ورودی میگیرد و یک تابع جدید را برمیگرداند که معمولاً عملکردی اضافی به تابع اصلی اضافه میکند. 🎩✨
مثال:
فرض کنید میخواهید زمان اجرای یک تابع را اندازهگیری کنید. با استفاده از دکوراتور، میتوانید این کار را به سادگی انجام دهید.
import time
def timing_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Elapsed time: {end_time - start_time:.4f} seconds")
return result
return wrapper
@timing_decorator
def my_function():
for _ in range(1000000):
pass
my_function()
در این مثال:
1. دکوراتور
timing_decorator
تعریف شده است که زمان اجرای تابع را اندازهگیری میکند.2. با استفاده از
@timing_decorator
، تابع my_function
با دکوراتور زمانبندی تزئین شده است.3. هر بار که
my_function
اجرا میشود، زمان اجرای آن اندازهگیری و چاپ میشود. 🕒💡کاربردهای دکوراتورها:
- ورود و خروج: برای ثبت ورود و خروج به توابع.
- کنترل دسترسی: برای مدیریت دسترسی به توابع.
- مدیریت منابع: برای مدیریت منابع مانند باز و بسته کردن فایلها.
- ارزیابی عملکرد: برای اندازهگیری عملکرد توابع.
به یاد داشته باشید: دکوراتورها میتوانند خوانایی و مدیریت کد را بهبود بخشند، به شرطی که به درستی و با دقت استفاده شوند. 🎯📈
🔻بیا اینجا تا بیشتر یاد بگیری
#Python #CodingTips #Decorators #Programming #PythonTips #PythonTricks #LearnPython
👍3