mirror of https://github.com/python/cpython
Issue #26576: Clarify that the @deco syntax is not always an equivalent of f = deco(f)
Patch by Chris Angelico.
This commit is contained in:
parent
e12a68be35
commit
6cafececbf
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue