如何在IPython笔记本中显示包函数的源代码
出于教学目的,我想要一个IPython笔记本,显示函数源代码(作为单元格的输出),但我希望能够在多个笔记本中引用它。因此,我希望以与使用%psource魔术类似的方式显示函数代码,但适当地突出显示语法 这是一个与类似的问题,但我希望能够将其应用于文件中的单个函数,而不是一次应用于整个文件 根据上一个问题的建议,我破解了一个在简单情况下有效的短代码:如何在IPython笔记本中显示包函数的源代码,python,ipython,ipython-notebook,ipython-magic,Python,Ipython,Ipython Notebook,Ipython Magic,出于教学目的,我想要一个IPython笔记本,显示函数源代码(作为单元格的输出),但我希望能够在多个笔记本中引用它。因此,我希望以与使用%psource魔术类似的方式显示函数代码,但适当地突出显示语法 这是一个与类似的问题,但我希望能够将其应用于文件中的单个函数,而不是一次应用于整个文件 根据上一个问题的建议,我破解了一个在简单情况下有效的短代码: def print_source(module, function): """For use inside an IPython noteb
def print_source(module, function):
"""For use inside an IPython notebook: given a module and a function, print the source code."""
from inspect import getmembers, isfunction, getsource
from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter
from IPython.core.display import HTML
internal_module = __import__(module)
internal_functions = dict(getmembers(internal_module, isfunction))
return HTML(highlight(getsource(internal_functions[function]), PythonLexer(), HtmlFormatter(full=True)))
两个问题:
psource
/pinfo2
中获得灵感,让他们返回信息而不是分页