Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Практичні Приклади Використання Декоратора | Декоратори
Середній Рівень Python: Аргументи, Генератори та Декоратори

bookПрактичні Приклади Використання Декоратора

Декоратори у Python є потужним інструментом для зміни поведінки функцій або методів. Найпоширеніші способи використання - це сплячий режим, перевірка часу та ведення журналу.

1. Сплячий декоратор

Цей декоратор змушує функцію чекати певний час перед виконанням.

1234567891011121314151617
import time def sleep_decorator(seconds): def decorator(func): def wrapper(*args, **kwargs): print(f"Sleeping for {seconds} seconds before executing '{func.__name__}'") time.sleep(seconds) return func(*args, **kwargs) return wrapper return decorator @sleep_decorator(2) def my_function(): print("Function executed!") # Usage my_function()
copy

2. Декоратор перевірки

Цей декоратор перевіряє, чи відповідають вхідні дані функції певним критеріям.

1234567891011121314151617
def validate_decorator(func): def wrapper(number): if not isinstance(number, int) or number < 0: raise ValueError("Input must be a non-negative integer") return func(number) return wrapper @validate_decorator def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) # Usage print(factorial(5)) # factorial(-1) # This will raise an error
copy

3. Декоратор часу

Цей декоратор вимірює час виконання функції. Ми вже використовували його у попередньому розділі.

123456789101112131415161718
import time def timing_decorator(func): def wrapper(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) end_time = time.time() print(f"'{func.__name__}' executed in {end_time - start_time} seconds") return result return wrapper @timing_decorator def some_function(): time.sleep(1) # Simulating a task print("Function completed") # Usage some_function()
copy

Декоратор для перевірки входу використовує додаткові бібліотеки і застосовується при розробці сайтів, тому доречніше розглядати цей декоратор в контексті створення сайтів.

Як ми вже говорили, декоратори є складною темою в Python і іноді вимагають більше практики для повного розуміння цієї теми. Ви на правильному шляху у формуванні мислення програміста.

1. Що буде виведено у наступному коді?

2. Що буде виведено у наступному коді?

question mark

Що буде виведено у наступному коді?

Select the correct answer

question mark

Що буде виведено у наступному коді?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 7

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 3.7

bookПрактичні Приклади Використання Декоратора

Свайпніть щоб показати меню

Декоратори у Python є потужним інструментом для зміни поведінки функцій або методів. Найпоширеніші способи використання - це сплячий режим, перевірка часу та ведення журналу.

1. Сплячий декоратор

Цей декоратор змушує функцію чекати певний час перед виконанням.

1234567891011121314151617
import time def sleep_decorator(seconds): def decorator(func): def wrapper(*args, **kwargs): print(f"Sleeping for {seconds} seconds before executing '{func.__name__}'") time.sleep(seconds) return func(*args, **kwargs) return wrapper return decorator @sleep_decorator(2) def my_function(): print("Function executed!") # Usage my_function()
copy

2. Декоратор перевірки

Цей декоратор перевіряє, чи відповідають вхідні дані функції певним критеріям.

1234567891011121314151617
def validate_decorator(func): def wrapper(number): if not isinstance(number, int) or number < 0: raise ValueError("Input must be a non-negative integer") return func(number) return wrapper @validate_decorator def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) # Usage print(factorial(5)) # factorial(-1) # This will raise an error
copy

3. Декоратор часу

Цей декоратор вимірює час виконання функції. Ми вже використовували його у попередньому розділі.

123456789101112131415161718
import time def timing_decorator(func): def wrapper(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) end_time = time.time() print(f"'{func.__name__}' executed in {end_time - start_time} seconds") return result return wrapper @timing_decorator def some_function(): time.sleep(1) # Simulating a task print("Function completed") # Usage some_function()
copy

Декоратор для перевірки входу використовує додаткові бібліотеки і застосовується при розробці сайтів, тому доречніше розглядати цей декоратор в контексті створення сайтів.

Як ми вже говорили, декоратори є складною темою в Python і іноді вимагають більше практики для повного розуміння цієї теми. Ви на правильному шляху у формуванні мислення програміста.

1. Що буде виведено у наступному коді?

2. Що буде виведено у наступному коді?

question mark

Що буде виведено у наступному коді?

Select the correct answer

question mark

Що буде виведено у наступному коді?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 7
some-alt