Python函数运行后部分刷新或清除Jupyter单元格显示
我通过Anaconda使用Python 3.7.1和Jupyter Notebook 6.0.1 我试图使用一个由ipywidget下拉列表初始化的函数来过滤数据,在Python中运行一些基本分析。如果下拉列表中的值发生变化,我希望的状态是使下拉列表保留在屏幕上,但按照函数过滤的方式刷新任何数据。为了进一步验证这一点,我构建了以下示例:Python函数运行后部分刷新或清除Jupyter单元格显示,python,python-3.x,jupyter-notebook,ipython,ipywidgets,Python,Python 3.x,Jupyter Notebook,Ipython,Ipywidgets,我通过Anaconda使用Python 3.7.1和Jupyter Notebook 6.0.1 我试图使用一个由ipywidget下拉列表初始化的函数来过滤数据,在Python中运行一些基本分析。如果下拉列表中的值发生变化,我希望的状态是使下拉列表保留在屏幕上,但按照函数过滤的方式刷新任何数据。为了进一步验证这一点,我构建了以下示例: import ipywidgets as widgets from IPython.display import clear_output def mytest
import ipywidgets as widgets
from IPython.display import clear_output
def mytest(x):
outs = widgets.Output()
outs.clear_output()
with outs:
lookhere = mytestfilter.value
if lookhere==1:
print("hello")
if lookhere==0:
print("goodbye")
display(outs)
mytestfilter = widgets.Dropdown(options={'night': 0, 'morning': 1}, description="FILTER")
display(mytestfilter)
outs=mytestfilter.observe(mytest, names='value')
基本上,在本例中,所需的状态是删除“hello”或“再见”,并在“FILTER”更改时用适当的术语替换它。最终,将对其进行调整,以过滤熊猫网格。我曾尝试使用Ipython.display并将函数组装到要清除的输出,但是,根据我所做的操作,它要么清除所有内容,要么不清除任何内容
我尝试过的事情:
-我试图将clear_输出移到函数的开头,以清除任何现有内容。因为在第一次运行时“outs”变量不存在,所以我还尝试在if语句以及try/except中包含它。它似乎什么也没做。
-我尝试了分配变量、显示变量和清除输出的不同顺序,但没有成功
我的怀疑是,问题可能部分在于函数的运行方式以及函数中存在的变量。似乎它启动了一个新的输出,一旦函数被转义,无论下次函数运行时我试图清除什么,输出都会保留在笔记本中
在尝试设置测试时,我引用了以下示例:
我在这篇文章的帮助下解决了这个问题:
显示和输出函数似乎必须存在于我定义的函数之外。话虽如此,我仍然停留在一件事上——如果有人能解释如何在从按钮调用时将多个变量传递到此函数中,那将是非常感激的,因为一旦我重新引入多个变量,我就会收到关于参数位置的错误。尝试使用单独的输出小部件(
outs=widgets.Output()
),它是在interact函数之外创建的
将IPyWidget作为小部件导入
从IPython.display导入清除输出
outs=widgets.Output()
def mytest(x):
不包括:
清除输出()
lookhere=mytestfilter.value
如果lookhere==1:
打印(“你好”)
如果lookhere==0:
打印(“再见”)
mytestfilter=widgets.Dropdown(选项={'night':0,'morning':1},description=“FILTER”)
显示(mytestfilter)
显示(输出)
mytestfilter.observe(mytest,names='value')