<div dir="ltr">Dear list,<div><br></div><div>The magic ? and ?? commands are among the most useful features in ipython (at least for me),</div><div>I&#39;m also using them to read my selfdocumentation on my own functions.</div>
<div>Therefore I was surprised to learn that you cannot read the doc string of a decorated function using ? or ??</div><div><br></div><div>for example, consider this decorator and function</div><div><br></div><div><br></div>
<div>def deco(f):</div><div><div><span class="Apple-tab-span" style="white-space:pre">        </span>&#39;&#39;&#39;decorator docstring&#39;&#39;&#39;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>def _deco(*args,**kwargs):</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>&#39;&#39;&#39;decorator inner function docstring&#39;&#39;&#39;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>print &#39;args=&#39;,args</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>return f(*args,**kwargs)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>return _deco</div><div><br></div><div>@deco</div><div>def myfunc(x,y):</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>&#39;&#39;&#39;function docstring&#39;&#39;&#39;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>return x+y</div><div><br></div><div>
<br></div><div>if I try to call myfunc docstring using ? I get:</div><div><br></div><div><br></div><div><div>In [18]: exem.myfunc?</div><div>Type:<span class="Apple-tab-span" style="white-space:pre">                </span>function</div>
<div>Base Class:<span class="Apple-tab-span" style="white-space:pre">        </span>&lt;type &#39;function&#39;&gt;</div><div>String Form:<span class="Apple-tab-span" style="white-space:pre">        </span>&lt;function _deco at 0x868a5a4&gt;</div>
<div>Namespace:<span class="Apple-tab-span" style="white-space:pre">        </span>Interactive</div><div>File:<span class="Apple-tab-span" style="white-space:pre">                </span>/home/tsviki/exem.py</div><div>Definition:<span class="Apple-tab-span" style="white-space:pre">        </span>exem.myfunc(*args, **kwargs)</div>
<div>Docstring:</div><div>    decorator inner function docstring</div><div><br></div><div><br></div><div>and if I try to call ??, it just gives me the decorator inner function.</div><div><br></div><div>Is there a way to overlap this?</div>
<div>linking the decorator __doc__ to myfunc.__doc__ won&#39;t help in case that I have several functions that use the same decorator.</div><div><br></div><div>Any help?</div><div><br></div><div>Thanks a lot</div><div><br>
</div><div>Tsviki Hirsh</div><div><br></div></div></div></div>