On Mon, Jun 28, 2010 at 11:25 AM, Chris Rebert <c...@rebertia.com> wrote: > On Mon, Jun 28, 2010 at 11:13 AM, Brian Blais <bbl...@bryant.edu> wrote: >> On Jun 27, 2010, at 22:37 , Red Forks wrote: >>> Read you doc file and set the __doc__ attr of the object you want to >>> change. >>> >>> On Monday, June 28, 2010, Brian Blais <bbl...@bryant.edu> wrote: >>>> I know that the help text for an object will give a description of every >>>> method based on the doc string. Is there a way to add something to this >>>> text, specific to an object, but generated at run-time? I have an object >>>> that reads a file, and I would like part of that file to be shown if one >>>> does: help(myobject) >> >> python file: >> >> #============= >> class A(object): >> pass >> >> help_text="this is some text" >> >> a=A() >> a.__doc__=help_text >> #============= >> >> in ipython: >> >> shows up here: >> >> In [5]:a? >> Type: A >> Base Class: <class '__main__.A'> >> String Form: <__main__.A object at 0x13270f0> >> Namespace: Interactive >> File: >> /Library/Frameworks/Python.framework/Versions/5.0.0/lib/python2.5/site-packages/IPython/FakeModule.py >> Docstring: >> this is some text >> >> >> but not with the help command: >> >> In [6]:help(a) >> Help on A in module __main__ object: >> >> class A(__builtin__.object) >> | Data descriptors defined here: >> | >> | __dict__ >> | dictionary for instance variables (if defined) >> | >> | __weakref__ >> | list of weak references to the object (if defined) >> >> >> also does the same thing with the regular python prompt. >> >> is there a reason for this? > > __doc__ is normally defined on classes, e.g. `A`, not instances, e.g. > `a`. help() looks for __doc__ accordingly. > > Cheers, > Chris > --
Just to save the OP some trouble later on: this optimization is done for most of the __*__ methods. Overriding __add__ on an instance won't change the behavior of a + b. -- http://mail.python.org/mailman/listinfo/python-list