Emanuel Barry added the comment:
The only significant difference is that it lets the instance overwrite the
attribute (it doesn't have __set__ or __delete__). For example (using
fractions.Fraction to demonstrate), the following:
def __new__(cls, numerator=0, denominator=None, _normalize=True):
# ...
self._numerator = numerator
self._denominator = denominator
@property
def numerator(a):
return a._numerator
@property
def denominator(a):
return a._denominator
would become:
def __new__(cls, numerator=0, denominator=None, _normalize=True):
# ...
self.numerator = numerator
self.denominator = denominator
@attribute
def numerator(a):
pass
@attribute
def denominator(a):
pass
This is more of an aesthetic enhancement rather than a functional one.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue24897>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com