Új hozzászólás Aktív témák

  • cousin333

    addikt

    válasz pigster #1822 üzenetére

    Alapvetően jól látod.

    "A @decorator_func a decorated_func = decorator_func(func_needs_decorator) -val egyenértékű (állítólag)"

    Nem egészen. A @decorator_func az tudtommal a
    func_needs_decorator = decorator_func(func_needs_decorator)
    sorral egyenértékű, tehát nem véletlen, hogy "felülírja" az eredeti függvényedet (legalábbis az aktuális alkalmazásban), de ez az írásmód eleve csak egy "syntactic sugar" a fent említett lépésre. Különösen akkor jön jól, ha mondjuk több dekorátort is használni kéne egyszerre.

    A dekorátorokról, működésükről, használatukról itt van egy alapos cikk: [link]. Azért linkeltem, mert a hozzászólások között konkrétan felteszik ugyanazt a kérdést, amit te. A választ idézve:

    "The whole point of decorators is to modify the behavior of the function through a wrapper so we don't have to actually modify the function. The function is not permanently modified; the behavior changes only when it's decorated."

    Gyakorlatilag egy mások által készített függvényt ki tudsz egészíteni anélkül, hogy hozzá kéne nyúlnod. Vagy az alap függvényedet általánosabban írhatod meg, és az aktuális felhasználás során dekorátorokkal specifikálhatod. Mindezt egy átlátható szintaxissal. Ha meg mindkettő funkcionalitására szükséged van, még mindig ott az első módszer.

Új hozzászólás Aktív témák