ПредишенСледващото

Този малък скрипт съдържа функция дневник. която се функция, тъй като само му аргумент. Създаваме дървар обект, а името на лог файла е същото като това на функцията. След това, дневник функция ще запише как нашата функция се нарича и това, което се връща, ако се върне.

построени декоратори

Python предлага няколко вградени декоратори. От всички декоратори, най-важното триото са:

Има и декоратори в различни секции на стандартната библиотека на Python. Един пример е functools.wraps. Ние ще се фокусира върху три основни декоратори по-горе.

@classmethod и @staticmethod

Аз не съм ги използва преди, така че аз го направих малко проучване.

  • декоратор <*@classmethod>* Това може да бъде причинено от използване на инстанция, или директно чрез собствената си Python клас като първи аргумент. В съответствие с документация питон: може да се нарече като клас (например, C.f ()), или копие (например, С () е ().). В случай се игнорира, освен за своя клас. Ако метод клас се нарича за получени клас, производния клас обект се предава като мълчалив първия аргумент.
  • Декоратор @classmethod. използва предимно като спомагателна или редуват метод конструктор за инициализация.
  • декоратор <*@staticmethod>* - това е просто една функция в рамките на класа. Можете да ги наричаме както като клас инициализация и без да се създава инстанция на класа. Обикновено то се използва в случаите, когато имате функция, която, според вас, е свързано с класа. В по-голямата си част, това е избор на стил.

Ако можем да разгледаме някои примерен код, който показва как декоратор, той може да ви помогне да се разберат основните принципи:

Този пример показва, че можете да се обадите по обичайния метод и двете методи декоратор по същия начин. Имайте предвид, че можете да се обадите и двете функции и @classmethod @staticmethod направо от клас или инстанция. Ако се опитате да се обадите на нормалната функция с помощта на класа (с други думи, DecoratorTest.doubler (2)), можете да получите Тип грешка грешка. Също така обърнете внимание на факта, че последният изход изявление показва, че decor.static_quad връща нормалната функция вместо свързан метод.

Python имоти (@property)

Python осигурява много удобен малък концепция, наречена собственост. който изпълнява редица полезни задачи. Ние разглеждаме как да направите следното:

  • Начин на реализация в клас атрибути са само за четене-;
  • Как да се прилагат инкубаторите и поглъщащите вещества в атрибута

Един от най-лесните начини за използване на имущество. е да го използва като метод за декоратор. Това ще ви позволи да се превърне метод клас в атрибута клас. това беше много полезно за мен, когато трябва да направя някаква комбинация от стойности. За други, това е много удобен, когато пишете метод за преобразуване трябва да бъдат приети като метод. Нека разгледаме един прост пример:

Ако се вгледате в подписите върху имота, то ще fget. fset. fdel и док като аргументи. Можете да създадете друг метод на украсената със същото име, поради delet функция, използвайки <@fee.deleter*>*. ако искате да хванете ** дел команда атрибут.

За да обобщим

В този момент трябва да разберете как да създадете свои собствени декоратори и как да използвате вградената скринове Python. Ние прегледахме classmethod. @property и @staticmethod. Надявам се, че ще използвате вградените в скринове и да създадете свой собствен.

Списъци, кортежи и речници в Python

Учене-ламбда функции в Python

Може да се интересувате

Учебни декоратори в питон

Свързани статии

Подкрепете проекта - споделете линка, благодаря!