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

Reply via email to