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