有没有办法让IPython Notebook输出以交互方式创建输入并执行它?

时间:2015-08-23 21:42:25

标签: ipython-notebook ipython-magic

我想知道我是否可以以交互方式运行一段代码。所以,例如,如果我有一个类(伪代码中的部分):

import numpy as np

class test(object):
    def __init__():
        self.a = np.random.randn(10)
        print ## Interactive Output: Click me to view data array##

    def show():
        print a

因此,当我创建一个类实例时,它应该输出一些交互式链接(可能是html)或类似的东西,当我点击它时,应该调用show()方法。但是,我不知道如何实现这一点。

1 个答案:

答案 0 :(得分:1)

您可以使用笔记本附带的小部件(jupyter they are an independent package)。

像这样的东西可以做你想要的(Python 3):

from IPython.html import widgets
from IPython.display import display
import numpy as np

class Test(object):
    def __init__(self, arraylen):
        self.a = np.random.randn(arraylen)
        self.button = widgets.Button(description = 'Show')
        self.button.on_click(self.show)
        display(self.button)

    def show(self, ev = None):
        display(self.a)
        self.button.disabled = True


test = Test(10)
  • 初始化课程widgets.Button(description = 'Show')
  • 时,您会创建一个按钮小部件
  • 将事件附加到button.on_click(self.show)
  • 并显示按钮display(self.button)
  • show方法中,我提供了一种在显示数组self.button.disabled = True后禁用按钮功能的方法。如果要显示阵列的更多次,可以对此行进行注释。