diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2016-08-03 07:17:21 (GMT) |
---|---|---|
committer | Berker Peksag <berker.peksag@gmail.com> | 2016-08-03 07:17:21 (GMT) |
commit | 6cafececbf4aaccc2edbefa9298ed54da27dadda (patch) | |
tree | 1e0282e19b38dfd58a91c2da4b085e26fde09155 | |
parent | e12a68be3580a3c7b80d384b2664b1921a7ff55b (diff) | |
download | cpython-6cafececbf4aaccc2edbefa9298ed54da27dadda.zip cpython-6cafececbf4aaccc2edbefa9298ed54da27dadda.tar.gz cpython-6cafececbf4aaccc2edbefa9298ed54da27dadda.tar.bz2 |
Issue #26576: Clarify that the @deco syntax is not always an equivalent of f = deco(f)
Patch by Chris Angelico.
-rw-r--r-- | Doc/reference/compound_stmts.rst | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst index 2469422..88b94ea 100644 --- a/Doc/reference/compound_stmts.rst +++ b/Doc/reference/compound_stmts.rst @@ -503,11 +503,13 @@ are applied in nested fashion. For example, the following code :: @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 when decorating functions, :: @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 |