On Fri, Feb 8, 2013 at 10:54 AM, Stefan Behnel <stefan...@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?) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com