Python 3: преимущества и недостатки языка Python интерпретируемый язык программирования



Download 7,02 Mb.
bet47/59
Sana23.02.2022
Hajmi7,02 Mb.
#159718
1   ...   43   44   45   46   47   48   49   50   ...   59
Bog'liq
Документ Microsoft Office Word

def first_test():

  • print("Test function 1")

  • first_test_wrapped = simple_decore(first_test)

  • first_test = first_test_wrapped

    Можно написать вот так:

    1. @simple_decore

    2. def first_test():

    3. print("Test function 1")

    @simple_decore – это и есть декоратор функции.

    Передача аргументов в функцию через декоратор


    Если функция в своей работе требует наличие аргумента, то его можно передать через декоратор. Создадим декоратор, который принимает аргумент и выводит информацию о декорируемой функции и ее аргументе.

    1. def param_transfer(fn):

    2. def wrapper(arg):

    3. print("Run function: " + str(fn.__name__) + "(), with param: " + str(arg))

    4. fn(arg)

    5. return wrapper

    Для демонстрации ее работы создадим функцию, которая выводит квадратный корень переданного ей числа, в качестве декоратора, укажем только что созданный param_transfer.

    1. @param_transfer

    2. def print_sqrt(num):

    3. print(num**0.5)

    Выполним эту функцию с аргументом 4.

    1. >>> print_sqrt(4)

    2. Run function: print_sqrt(), with param: 4

    3. 2.0

    Декораторы для методов класса


    Методы классов также можно объявлять с декоратором. Модифицируем декоратор param_transfer.

    1. def method_decor(fn):

    2. def wrapper(self):

    3. print("Run method: " + str(fn.__name__))

    4. fn(self)

    5. return wrapper

    Создадим класс для представления двумерного вектора (из математики). В этом классе определим метод norm(), который выводит модуль вектора.


    1. Download 7,02 Mb.

      Do'stlaringiz bilan baham:
  • 1   ...   43   44   45   46   47   48   49   50   ...   59




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
    ma'muriyatiga murojaat qiling

    kiriting | ro'yxatdan o'tish
        Bosh sahifa
    юртда тантана
    Боғда битган
    Бугун юртда
    Эшитганлар жилманглар
    Эшитмадим деманглар
    битган бодомлар
    Yangiariq tumani
    qitish marakazi
    Raqamli texnologiyalar
    ilishida muhokamadan
    tasdiqqa tavsiya
    tavsiya etilgan
    iqtisodiyot kafedrasi
    steiermarkischen landesregierung
    asarlaringizni yuboring
    o'zingizning asarlaringizni
    Iltimos faqat
    faqat o'zingizning
    steierm rkischen
    landesregierung fachabteilung
    rkischen landesregierung
    hamshira loyihasi
    loyihasi mavsum
    faolyatining oqibatlari
    asosiy adabiyotlar
    fakulteti ahborot
    ahborot havfsizligi
    havfsizligi kafedrasi
    fanidan bo’yicha
    fakulteti iqtisodiyot
    boshqaruv fakulteti
    chiqarishda boshqaruv
    ishlab chiqarishda
    iqtisodiyot fakultet
    multiservis tarmoqlari
    fanidan asosiy
    Uzbek fanidan
    mavzulari potok
    asosidagi multiservis
    'aliyyil a'ziym
    billahil 'aliyyil
    illaa billahil
    quvvata illaa
    falah' deganida
    Kompyuter savodxonligi
    bo’yicha mustaqil
    'alal falah'
    Hayya 'alal
    'alas soloh
    Hayya 'alas
    mavsum boyicha


    yuklab olish