]> granicus.if.org Git - python/commitdiff
inspect.docs: Document constructors for Signature & Parameter #20442
authorYury Selivanov <yselivanov@sprymix.com>
Thu, 30 Jan 2014 05:12:02 +0000 (00:12 -0500)
committerYury Selivanov <yselivanov@sprymix.com>
Thu, 30 Jan 2014 05:12:02 +0000 (00:12 -0500)
Doc/library/inspect.rst

index 7612544ad0d25d7752f07c67c18e86a7129a5c25..d4cf9054cb35cd094758818a3271996d3b04310f 100644 (file)
@@ -435,12 +435,21 @@ function.
       no metadata about their arguments.
 
 
-.. class:: Signature
+.. class:: Signature(parameters=None, \*, return_annotation=Signature.empty)
 
    A Signature object represents the call signature of a function and its return
    annotation.  For each parameter accepted by the function it stores a
    :class:`Parameter` object in its :attr:`parameters` collection.
 
+   The optional *parameters* argument is a sequence of :class:`Parameter`
+   objects, which is validated to check that there are no parameters with
+   duplicate names, and that the parameters are in the right order, i.e.
+   positional-only first, then positional-or-keyword, and that parameters with
+   defaults follow parameters without defaults.
+
+   The optional *return_annotation* argument, can be an arbitrary Python object,
+   is the "return" annotation of the callable.
+
    Signature objects are *immutable*.  Use :meth:`Signature.replace` to make a
    modified copy.
 
@@ -489,7 +498,7 @@ function.
          "(a, b) -> 'new return anno'"
 
 
-.. class:: Parameter
+.. class:: Parameter(name, kind, \*, default=Parameter.empty, annotation=Parameter.empty)
 
    Parameter objects are *immutable*.  Instead of modifying a Parameter object,
    you can use :meth:`Parameter.replace` to create a modified copy.