Message282173
Noting for the record, as the general way of querying an unbound method for the name of the first parameter and adding it to the bound arguments:
def add_instance_arg(callable, bound_args):
try:
self = callable.__self__
func = callable.__func__
except AttributeError:
return # Not a bound method
unbound_sig = inspect.signature(func)
for name in unbound_sig.parameters:
bound_args.arguments[name] = self
break
>>> method = C().method
>>> sig = inspect.signature(method)
>>> sig
<Signature (arg)>
>>> args = sig.bind(1)
>>> args
<BoundArguments (arg=1)>
>>> add_instance_arg(method, args)
>>> args
<BoundArguments (arg=1, self=<__main__.C object at 0x7f07ab719668>)> |
|
Date |
User |
Action |
Args |
2016-12-01 13:20:28 | ncoghlan | set | recipients:
+ ncoghlan, brett.cannon, larry, nedbat, r.david.murray, python-dev, berker.peksag, yselivanov, matrixise, veky, untitaker |
2016-12-01 13:20:28 | ncoghlan | set | messageid: <1480598428.31.0.916500207974.issue20438@psf.upfronthosting.co.za> |
2016-12-01 13:20:28 | ncoghlan | link | issue20438 messages |
2016-12-01 13:20:28 | ncoghlan | create | |
|