Sobes.tech
Junior — Middle

консепти декораторҳоро дар Python шарҳ диҳед ва чӣ гуна онҳо барои тағир додани рафтори функсияҳо истифода мешаванд.

sobes.tech AI

Ҷавоб аз AI

Декораторҳо дар Python функсияҳое ҳастанд, ки функсияи дигарро қабул мекунанд ва функсияи навро бо рафторе тағйирёфта ё васеъшуда бармегардонанд, бе тағйир додани коди манбаъии функсияи ороишёфта.

Онҳо одатан барои:

  • Сабт кардани зангҳо
  • Санҷиши ҳуқуқи дастрасӣ
  • Кэш кардани натиҷаҳо
  • Меъёри вақти иҷро

Масалан, як декоратори содда, ки паёмро пеш ва баъд аз занг задан ба функсия нишон медиҳад:

def decorator(func):
    def wrapper(*args, **kwargs):
        print("Пеш аз занг ба функсия")
        result = func(*args, **kwargs)
        print("Баъд аз занг ба функсия")
        return result
    return wrapper

@decorator
def say_hello(name):
    print(f"Салом, {name}!")

say_hello("Дунё")

Натиҷа чунин хоҳад буд:

Пеш аз занг ба функсия
Салом, Дунё!
Баъд аз занг ба функсия

Ин тариқ, декораторҳо имкон медиҳанд, ки рафтори функсияҳоро динамикӣ тағйир дод, бе тағйир додани коди манбаъии онҳо.