Mark Dickinson <dicki...@gmail.com> added the comment:

The key difference between the func_del function and the instance C() is that 
func_del is a (non-data) descriptor in addition to being callable, while the 
instance C() is not. That makes func_del usable as a method.

If you define C as follows, you'll see the behaviour you expect:


    class C:
        def __call__(self, *args, **kwargs):
            print("call", args, kwargs)

        def __get__(self, obj, objtype=None):
              return MethodType(self, obj)

Useful reference for descriptors: 
https://docs.python.org/3/howto/descriptor.html

I'll close here, since this is neither a bug nor a feature request.

----------
nosy: +mark.dickinson
resolution:  -> not a bug
stage:  -> resolved
status: open -> closed

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue43310>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to