簡體   English   中英

Jupyter Notebook,Python:從函數內調用魔術,而不僅僅是單元格

[英]Jupyter Notebook, Python: Call magic from within a function _not just a cell_

我正在嘗試編寫一個將一些JavaScript嵌入Jupyter筆記本的庫。 使用%%javascript魔術,代碼可以正常工作,但是我想將JavaScript的加載嵌入到庫調用中。 我發現了這樣的帖子: Jupyter Notebook,Python:如何從函數內部調用魔術? 但它只能部分起作用。

以下代碼正確運行JavaScript警報:

from IPython.core.magics.display import Javascript
Javascript('alert("hello world")')

但是,以下操作不起作用(什么也沒有發生;沒有控制台錯誤):

from IPython.core.magics.display import Javascript

def foo():
    Javascript('alert("hello world")')
foo()

如何在函數中嵌入對Javascript的有效調用?

射擊。 發布到SO 之后,您的思維可以更快地工作這真是令人驚訝。

為了后代, Javascript函數通過返回必要的代碼與Jupyter一起使用。 為了使我的示例正常工作,唯一的更改是使foo返回Javascript(...)的結果。 我認為這是通過與筆記本的某種神奇連接而在函數內完成的工作的無效回報。 不是這樣! (當然,如果它是靜態類型的,我會知道這一點並為自己節省了一些時間,但是我離題了。)嗯,正確的代碼是:

from IPython.core.magics.display import Javascript

def foo():
    return Javascript('alert("hello world")')
foo()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM