On Thu, Sep 24, 2015 at 4:10 PM, Ian Kelly <ian.g.ke...@gmail.com> wrote: > On Thu, Sep 24, 2015 at 2:28 PM, Joseph L. Casale > <jcas...@activenetwerx.com> wrote: >> I have a class factory where I dynamically add a constructor to the class >> output. >> The method is a closure and works just fine, however to accommodate the >> varied >> input its signature is (*args, **kwargs). >> >> While I modify the doc strings, the ctor sig is not optimal. Without building >> this a string and using eval, is there anything that can be done about this? > > In Python 3.3+ you can attach a Signature object to a function by > setting the function's __signature__ attribute. In Python 3.4+ the > __signature__ is used in generating the signature for PyDoc and > help().
Quick and dirty example: py> from inspect import Signature, Parameter py> def foo(*args, **kwargs): pass ... py> foo.__signature__ = Signature([Parameter('x', Parameter.POSITIONAL_OR_KEYWORD), Parameter('y', Parameter.KEYWORD_ONLY)]) py> help(foo) Help on function foo in module __main__: foo(x, *, y) -- https://mail.python.org/mailman/listinfo/python-list