cpython: e0f9f8be7963 (original) (raw)

Mercurial > cpython

changeset 102510:e0f9f8be7963 3.5

Issue #26576: Clarify that the @deco syntax is not always an equivalent of f = deco(f) Patch by Chris Angelico. [#26576]

Berker Peksag berker.peksag@gmail.com
date Wed, 03 Aug 2016 10:17:21 +0300
parents d9e25fe35f46
children 08359651815e 441bbf4cc914
files Doc/reference/compound_stmts.rst
diffstat 1 files changed, 5 insertions(+), 4 deletions(-)[+] [-] Doc/reference/compound_stmts.rst 9

line wrap: on

line diff

--- a/Doc/reference/compound_stmts.rst +++ b/Doc/reference/compound_stmts.rst @@ -503,11 +503,13 @@ are applied in nested fashion. For examp @f2 def func(): pass -is equivalent to :: +is roughly equivalent to :: def func(): pass func = f1(arg)(f2(func)) +except that the original function is not temporarily bound to the name func. + .. index:: triple: default; parameter; value single: argument; function definition @@ -638,14 +640,13 @@ Classes can also be decorated: just like @f2 class Foo: pass -is equivalent to :: +is roughly equivalent to :: class Foo: pass Foo = f1(arg)(f2(Foo)) The evaluation rules for the decorator expressions are the same as for function -decorators. The result must be a class object, which is then bound to the class -name. +decorators. The result is then bound to the class name. Programmer's note: Variables defined in the class definition are class attributes; they are shared by instances. Instance attributes can be set in a