Tanulási lakberendezők a python

Ez a kis script tartalmaz egy naplót funkciót. hogy vesz egy függvény, melynek egyetlen érv. Készítünk egy naplózó objektumot, és a neve a naplófájl megegyezik a funkciót. Ezt követően, log funkció rögzíti, hogy a funkció hívták, és mit ad vissza, ha a hozamok.

épített lakberendezők

A Python számos beépített lakberendezők. Az összes festő legfontosabb trió:

Vannak még lakberendezők különböző szakaszain a Python standard könyvtár. Egy példa functools.wraps. Mi fog összpontosítani három fő festő felett.

@classmethod és @staticmethod

Én nem használtam őket korábban, így csináltam egy kis kutatást.

  • díszlettervező <*@classmethod>* Ez okozhatja segítségével például akár közvetlenül a saját Python osztály, mint az első érv. Összhangban Python dokumentáció: lehet nevezni, mint egy osztály (például, vö ()), vagy a másolás (például, C () f ().). A példány figyelmen kívül hagyja, kivéve a kategóriájában. Ha egy osztály módszer az úgynevezett egy származtatott osztály, a származtatott osztály objektum adódik, mint az beleértett első érv.
  • Dekoratőr @classmethod. elsődlegesen alkalmazható segédanyag vagy alternáló kivitelező módszer inicializálás.
  • díszlettervező <*@staticmethod>* - ez csak egy függvény az osztályon belül. Hívhatjuk mindkettőt inicializálásául osztály és anélkül, hogy egy példányát az osztálynak. Általában olyan esetekben használjuk, ha van egy funkció, ami az Ön véleménye, össze van kötve az osztályban. A legtöbb, ez egy választás a stílus.

Ha megnézzük néhány példa kód, amely megmutatja, hogy a lakberendező, segíthet megérteni az alapelveket:

Ez a példa azt mutatja, hogy akkor hívja a szokásos módon, és mindkét módszer dekoratőr ugyanúgy. Vegye figyelembe, hogy akkor hívja a funkciókat és @classmethod @staticmethod egyenesen osztály vagy példány. Ha megpróbálja felhívni a normális működését a class (más szóval, DecoratorTest.doubler (2) bekezdés), akkor kap egy hiba Típushiba. Szintén figyelni arra, hogy az utolsó állítás kimenet jelzi, hogy decor.static_quad visszatér a normális működést, hanem a kapcsolódó eljárás.

Python Properties (@property)

A Python egy nagyon hasznos kis koncepció nevezett tulajdonság. amely elvégzi számos hasznos feladatokat. Megnézzük, hogyan kell csinálni a következő:

  • Átváltási módszer az osztályban attribútumok csak olvasható;
  • Hogyan lehet megvalósítani a alkotóinak és getter az attribútum

Az egyik legegyszerűbb módja, hogy használja tulajdon. az, hogy használja a dekoratőr módszer. Ez lehetővé teszi, hogy kapcsolja osztálymetódust a class attribútum. Nagyon hasznos volt számomra, amikor szükség van némi kombinációja értékeket. Másoknak ez nagyon hasznos, ha írunk egy konverziós módszert kell elfogadni, mint módszert. Nézzünk egy egyszerű példát:

Ha megnézzük az aláírásokat az ingatlan, akkor fget. fset. fdel és doc érveket. Akkor hozzon létre egy másik módja díszített használja ugyanazt a nevet miatt delet funkciót <@fee.deleter*>*. Ha azt szeretnénk, hogy elkapjon ** del parancs attribútumot.

Összefoglalva

Ezen a ponton meg kell érteni, hogyan lehet létrehozni saját lakberendezők és hogyan kell használni a beépített drag Python. Áttekintettük classmethod. @property és @staticmethod. Remélem, használja a beépített drag, és hozza létre saját.

Listák, hármas és szótárak Python

Learning-lambda funkciók Python

Lehet, hogy érdekli

Tanulási lakberendezők a python

Kapcsolódó cikkek