class C: vs class C(object):

James Stroud jstroud at mbi.ucla.edu
Thu Jul 19 18:47:27 EDT 2007


Aahz wrote:
> In article <pan.2007.07.19.08.09.59.261957 at REMOVE.THIS.cybersource.com.au>,
> Steven D'Aprano  <steve at REMOVE.THIS.cybersource.com.au> wrote:
> 
>>It isn't wrong to use the old style, but it is deprecated, [...]
> 
> 
> Really?  Can you point to some official documentation for this?  AFAIK,
> new-style classes still have not been integrated into the standard
> documentation.  Maybe I missed something, though.
> 
> Note very carefully that "going away eventually" is *not* the same as
> deprecation.

How about "broke" instead of "deprecated":


 >>> class Old:
...   def __init__(self):
...     self._value = 'broke'
...   value = property(lambda self: self._value)
...
 >>>
 >>> class New(object):
...   def __init__(self):
...     self._value = 'works'
...   value = property(lambda self: self._value)
...
 >>> broke = Old()
 >>> broke.value
'broke'
 >>> broke.value = 'still broke'
 >>> broke.value
'still broke'
 >>>
 >>> works = New()
 >>> works.value
'works'
 >>> works.value = 'expected result of assignment here'
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
AttributeError: can't set attribute


James

-- 
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095

http://www.jamesstroud.com/



More information about the Python-list mailing list