Modifying signature of ctor in class

Ian Kelly ian.g.kelly at
Fri Sep 25 01:31:37 CEST 2015

On Thu, Sep 24, 2015 at 5:01 PM, Joseph L. Casale
<jcasale at> wrote:
>> 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)
> That actually should harmlessly support Python versions less than 3.3
> while simply accomplishing nothing. I don't even need a test for the version.
> I'll go with that as a decent trade off.

Well, setting the __signature__ attribute is harmless, but do note
that inspect.Signature doesn't exist before 3.3.

More information about the Python-list mailing list