[Python-Dev] Why does Signature.from_function() have to check the type of its argument?
PJ Eby
pje at telecommunity.com
Fri Feb 8 19:46:08 CET 2013
More information about the Python-Dev mailing list
Fri Feb 8 19:46:08 CET 2013
- Previous message: [Python-Dev] Why does Signature.from_function() have to check the type of its argument?
- Next message: [Python-Dev] Why does Signature.from_function() have to check the type of its argument?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, Feb 8, 2013 at 10:54 AM, Stefan Behnel <stefan_ml at behnel.de> wrote: > Nick Coghlan, 08.02.2013 16:20: >> On Sat, Feb 9, 2013 at 1:06 AM, Benjamin Peterson wrote: >>> 2013/2/8 Stefan Behnel: >>>> I'm wondering about the purpose of this code in >>>> inspect.Signature.from_function(): >>>> >>>> """ >>>> if not isinstance(func, types.FunctionType): >>>> raise TypeError('{!r} is not a Python function'.format(func)) >>>> """ >>>> >>>> Is there any reason why this method would have to explicitly check the type >>>> of its argument? Why can't it just accept any object that quacks like a >>>> function? >>> >>> The signature() function checks for types.FunctionType in order to >>> call Signature.from_function(). How would you reimplement that? > > It should call isfunction() instead of running an explicit type check. Isn't it possible now for an object to implement __instancecheck__ and claim to be an instance of FunctionType, anyway? (For that matter, shouldn't there be some ABCs for this?)
- Previous message: [Python-Dev] Why does Signature.from_function() have to check the type of its argument?
- Next message: [Python-Dev] Why does Signature.from_function() have to check the type of its argument?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list