A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2015-February/138558.html below:

[Python-Dev] how to inspect if something includes a bound first param

[Python-Dev] how to inspect if something includes a bound first param [Python-Dev] how to inspect if something includes a bound first paramLarry Hastings larry at hastings.org
Wed Feb 25 15:33:59 CET 2015
On 02/24/2015 05:56 PM, Gregory P. Smith wrote:
> inspect.getargspec(method) and inspect.signature(method) both include 
> the 'self' parameter but how are we to figure out from method itself 
> that it is actually bound and that its first parameter is expected to 
> be a bound instance?

Given the mechanisms involved, surely this question is a bit 
nonsensical?  The function doesn't "expect" anything, it's just a 
function.  (I remind you, Python 3 dropped the whole concept of an 
"unbound method".)  If it happens to live inside a class, and it's 
accessed through an instance of the class, then the first parameter gets 
bound.

Consider:

     >>> class A:
    ...   def x(self, a): print(a)
    ...
     >>> a = A()

inspect.signature(A.x).parameters has two parameters, "self" and "a".
inspect.signature(a.x).parameters has only one parameter, "a".

I claiim this is what you want.  It's analagous to a functools.partial 
object.  It would be awfully confusing if the signature of a 
functools.partial object include the parameters handled by the partial 
object.

IMO inspect.getargspec and inspect.getfullargspec get this wrong; for 
a.x they include the "self" parameter.  If you were constructing a call 
to this function dynamically you'd include one too many parameters.


//arry/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20150225/da5c1f4d/attachment.html>
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4