2015-08-23 18 views
0

我想知道是否可以交互式地運行一段代碼。所以,如果例如我有一個類(在僞代碼部分):有沒有辦法讓IPython Notebook輸出交互創建輸入並執行它?

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

您可以使用筆記本附帶的小工具(適用於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方法中,我包含了一種方法來禁用按鈕功能,一旦t他排列顯示self.button.disabled = True。如果你想顯示更多的數組,你可以評論這一行。
+0

你是否也知道我是否可以安排在html表中的按鈕以及輸出? –

+0

您可以使用「小部件」,「顯示」和「HTML」的組合。你應該開闢一個新的問題,把你需要的東西輸出給別人,或者我可以爲這個新的需求提供更準確的答案。 – kikocorreoso

+0

請查看其他問題[here](http://stackoverflow.com/questions/32181126/how-to-align-widget-buttons-in-ipython-notebook) –

相關問題