📚 دوره آموزش پایتون از 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