]> granicus.if.org Git - python/commitdiff
#9117: fix syntax for class definition.
authorGeorg Brandl <georg@python.org>
Sun, 17 Oct 2010 10:38:20 +0000 (10:38 +0000)
committerGeorg Brandl <georg@python.org>
Sun, 17 Oct 2010 10:38:20 +0000 (10:38 +0000)
Doc/reference/compound_stmts.rst

index 4e6086fe060fab5ecbcc29b3b175c5259f6be109..95d5705602c97d573a2a6a8b16861999fb501606 100644 (file)
@@ -555,10 +555,9 @@ A class definition defines a class object (see section :ref:`types`):
 
 .. productionlist::
    classdef: [`decorators`] "class" `classname` [`inheritance`] ":" `suite`
-   inheritance: "(" [`argument_list` [","] ] ")"
+   inheritance: "(" [`argument_list` [","] | `comprehension`] ")"
    classname: `identifier`
 
-
 A class definition is an executable statement.  The inheritance list usually
 gives a list of base classes (see :ref:`metaclasses` for more advanced uses), so
 each item in the list should evaluate to a class object which allows
@@ -575,7 +574,7 @@ namespace.
 
 Class creation can be customized heavily using :ref:`metaclasses <metaclasses>`.
 
-Classes can also be decorated; as with functions, ::
+Classes can also be decorated: just like when decorating functions, ::
 
    @f1(arg)
    @f2
@@ -586,6 +585,10 @@ is 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.
+
 **Programmer's note:** Variables defined in the class definition are class
 attributes; they are shared by instances.  Instance attributes can be set in a
 method with ``self.name = value``.  Both class and instance attributes are