[Python-bugs-list] [ python-Bugs-576990 ] inheriting from property and docstrings
noreply@sourceforge.net
noreply@sourceforge.net
Mon, 08 Jul 2002 05:23:58 -0700
Bugs item #576990, was opened at 2002-07-03 14:42
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=576990&group_id=5470
Category: Python Interpreter Core
Group: Python 2.2.1
Status: Open
Resolution: None
Priority: 5
Submitted By: Roeland Rengelink (rengelink)
Assigned to: Nobody/Anonymous (nobody)
Summary: inheriting from property and docstrings
Initial Comment:
If I inherit from property, and try to initialize a derived
property object, the doc string doesn't get set. This bug
was introduced in 2.2.1, and is present in 2.3a0:
Compare:
Python 2.2 (#1, Mar 26 2002, 15:46:04)
[GCC 2.95.3 20010315 (SuSE)] on linux2
Type "help", "copyright", "credits" or "license" for more
information.
>>> class myprop(property):pass
...
>>> a = myprop(None, None, None, 'hi')
>>> print a.__doc__
hi
and,
Python 2.2.1 (#1, Jun 16 2002, 16:19:48)
[GCC 2.95.3 20010315 (SuSE)] on linux2
Type "help", "copyright", "credits" or "license" for more
information.
>>> class myprop(property):pass
...
>>> a = myprop(None, None, None, 'hi')
>>> print a.__doc__
None
There is no problem with the getter/setter functions
passed to the constructor. i.e.: myprop(f,g,h,None) works
identical in 2.2 and 2.2.1
Good luck,
Roeland Rengelink
----------------------------------------------------------------------
>Comment By: Roeland Rengelink (rengelink)
Date: 2002-07-08 12:23
Message:
Logged In: YES
user_id=302601
Some more details:
In fact 2.2.1 is consistently wrong, whereas 2.2 is
inconsistently right ;), compare:
Python 2.2.1 (#20, Jul 8 2002, 13:25:14)
[GCC 3.1] on linux2
Type "help", "copyright", "credits" or "license" for more
information.
>>> class myprop(property):pass
...
>>> class yourprop(property):
... "A doc string"
...
>>> print myprop(None, None, None, 'Hi there').__doc__
None
>>> print yourprop(None, None, None, 'Hi there').__doc__
A doc string
and
Python 2.2 (#4, Jan 7 2002, 11:59:25)
[GCC 2.95.2 19991024 (release)] on linux2
Type "help", "copyright", "credits" or "license" for more
information.
>>> class myprop(property):pass
...
>>> class yourprop(property):
... "A doc string"
...
>>> print myprop(None, None, None, 'Hi there').__doc__
Hi there
>>> print yourprop(None, None, None, 'Hi there').__doc__
A doc string
So, in 2.2.1 myprop(...).__doc__ will allways return
myprop.__doc__. In 2.2 myprop.__doc__ will return the
instance's
__doc__, iff myprop.__doc__ is None.
For the record: I was expecting 'Hi there' (i.e.
obj->prop_doc), as in:
>>> property(None, None, None, 'Hi there').__doc__
'Hi there'
Hope this helps,
Roeland
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=576990&group_id=5470