On Tue, 21 Aug 2012 09:44:10 -0700, Miki Tebeka wrote:
> Greetings,
>
>>>> class A:
> ... '''a doc string'''
> ...
>>>> A.__doc__
> 'a doc string'
>>>> class B:
> ... '''a {} string'''.format('doc') ...
>>>> B.__doc__
>>>>
>>>>
> Is there's a reason for this?
Yes. Python only generates docstrings automatically from string literals,
not arbitrary expressions.
Arbitrary expressions are evaluated and then garbage collected, so:
class B:
'''a {} string'''.format('doc')
is equivalent to:
class B:
__doc__ = None
_tmp = '''a {} string'''.format('doc')
del _tmp
except that the name "_tmp" doesn't actually get used.
--
Steven
--
http://mail.python.org/mailman/listinfo/python-list