<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#ffffff">
On 1/4/11 07:23 , Mike Graham wrote:
<blockquote
cite="mid:AANLkTingtzdHoip9PMf-OVzqfcYdqzeaBoXaQq4gnD5r@mail.gmail.com"
type="cite">
<div class="gmail_quote">On Mon, Jan 3, 2011 at 4:09 PM, K.
Richard Pixley <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:rich@noir.com">rich@noir.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
<div bgcolor="#ffffff" text="#000000"> Essentially the
permutation are, I think:
{'unadorned'|abc.abstract}{'normal'|static|class}{method|property|non-callable
attribute}.<br>
</div>
<br>
</blockquote>
<div><br>
At the abstract level, a property and a normal, non-callable
attribute are the same thing.</div>
</div>
</blockquote>
They are from the instantiation perspective but not from the
subclassing perspective. From the subclassing perspective, it's the
difference between:<br>
<br>
<tt>class Foo(object):<br>
@property<br>
def bar(self):<br>
...<br>
</tt><br>
and:<br>
<br>
<tt>class Foo(object):<br>
bar = ...<br>
</tt><br>
If an abstract property were to be answered by a simple assignment,
then the "read-only" trait would be lost.<br>
<br>
--rich<br>
</body>
</html>