Return 执行函数的输出 'on_click'
Return output of the function executed 'on_click'
如何获取ipywidgets.Button
执行的函数on_click
的输出
在接下来的步骤中使用的功能之外?例如,我想在每次单击后取回 a
的值,以便在 jupyter-notebook 的下一个单元格中使用。到目前为止我只得到 None
.
from ipywidgets import Button
def add_num(ex):
a = b+1
print('a = ', a)
return a
b = 1
buttons = Button(description="Load/reload file list")
a = buttons.on_click(add_num)
display(buttons)
print(a)
我发现执行此类操作的最佳方法是创建 widgets.Button
的子类,然后添加新的 traitlet
属性。这样您就可以在创建新按钮对象时加载要对其执行操作的值。您可以随时访问这个新的 traitlet
属性 inside 或 outside 函数。这是一个例子;
from ipywidgets import widgets
from IPython.display import display
from traitlets import traitlets
class LoadedButton(widgets.Button):
"""A button that can holds a value as a attribute."""
def __init__(self, value=None, *args, **kwargs):
super(LoadedButton, self).__init__(*args, **kwargs)
# Create the value attribute.
self.add_traits(value=traitlets.Any(value))
def add_num(ex):
ex.value = ex.value+1
print(ex.value)
lb = LoadedButton(description="Loaded", value=1)
lb.on_click(add_num)
display(lb)
希望有所帮助。如果这不能解决您的问题,请在下方评论。
如何获取ipywidgets.Button
执行的函数on_click
的输出
在接下来的步骤中使用的功能之外?例如,我想在每次单击后取回 a
的值,以便在 jupyter-notebook 的下一个单元格中使用。到目前为止我只得到 None
.
from ipywidgets import Button
def add_num(ex):
a = b+1
print('a = ', a)
return a
b = 1
buttons = Button(description="Load/reload file list")
a = buttons.on_click(add_num)
display(buttons)
print(a)
我发现执行此类操作的最佳方法是创建 widgets.Button
的子类,然后添加新的 traitlet
属性。这样您就可以在创建新按钮对象时加载要对其执行操作的值。您可以随时访问这个新的 traitlet
属性 inside 或 outside 函数。这是一个例子;
from ipywidgets import widgets
from IPython.display import display
from traitlets import traitlets
class LoadedButton(widgets.Button):
"""A button that can holds a value as a attribute."""
def __init__(self, value=None, *args, **kwargs):
super(LoadedButton, self).__init__(*args, **kwargs)
# Create the value attribute.
self.add_traits(value=traitlets.Any(value))
def add_num(ex):
ex.value = ex.value+1
print(ex.value)
lb = LoadedButton(description="Loaded", value=1)
lb.on_click(add_num)
display(lb)