Terry J. Reedy added the comment:

__call__ is a reserved name defined to be an instance method.  I view wrapping 
*any* reserved-name instance method with @property to be a bug in that it 
redefines the name as a data attribute implemented with a 'hidden' get method.  
A function wrapped with @staticmethod or @classmethod is also not an instance 
method.

The doc for callable says " If this returns true, it is still possible that a 
call fails,"  In your example, calling a() fails with AttributeError, with or 
without the @property decoration.  Either way it does not contradict the doc.

The doc also says "but if it is false, calling object will never succeed."  So 
if you can define an object f such that callable(f) == False and print(f()) 
prints something, that would show a bug (and be a test case).  Failing that, 
this is appears to be a feature request, not a bug fix.

----------
nosy: +terry.reedy
stage:  -> test needed
type: behavior -> enhancement
versions: +Python 3.5 -Python 2.7, Python 3.2, Python 3.3, Python 3.4

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

Reply via email to