[Doc-SIG] suggestions for a PEP

Edward Welbourne Edward Welbourne <eddy@chaos.org.uk>
Thu, 15 Mar 2001 23:41:45 +0000 (GMT)

Edward Loper and Tibs were discussing having B.f borrow A.f's __doc__
when B inherits from A, Tony said assign ...
>> But really you have to do this:
>>   B.f.im_func.__doc__ = A.f.__doc__

> Well, I didn't realise that, but (a) that counts as "works" (for an
> odd value of "works", admittedly) and (b) it may change with function
> attributes - don't know.

ah.  Just tested what I should have earlier - Edward's right:

>>> def hello(there): return there
>>> hello.__doc__ = 'hello there'
>>> hello.__doc__
'hello there'
>>> class A:
... 	def hello(there): return there
>>> A.hello.__doc__ = 'hello there'
Traceback (innermost last):
  File "<stdin>", line 1, in ?
TypeError: attribute-less object (assign or del)
>>> A.hello.im_func.__doc__ = 'hello there'
>>> A.hello.__doc__
'hello there'

It works for functions but not if they're hanging off the namespace of a
class ?  The attribute shows up on the class method after I set it on
the class method's im_func ?  This is wrong, obscene and ugly !

Naughty Guido - explain !

But, like I say elsewhere, we shouldn't *need* to be assigning, and:
this smells like we should be using acquisition.