【问题标题】:ipywidgets - display next value in list after clickingipywidgets - 单击后在列表中显示下一个值
【发布时间】:2017-08-21 20:49:25
【问题描述】:

我正在尝试使用ipywidgets,以便在单击按钮后在我的列表(在 Jupyter 笔记本中)中显示下一个值,以display_vals 给出。但是,使用以下代码 sn-p,我得到了错误为

local variable 'i' referenced before assignment

这是我的sn-p

from IPython.display import display, clear_output
import ipywidgets as widgets

button = widgets.Button(description="Click Me!")
display(button)

display_vals = ['a', 'b', 'c']
i = 0

def on_button_clicked(b):
    print(display_vals[i])
    clear_output()
    i += 1

button.on_click(on_button_clicked)

我想我只是不知道点击按钮时如何解析我的变量。

【问题讨论】:

    标签: jupyter-notebook ipywidgets


    【解决方案1】:

    您可以通过将 i 声明为全局并包含这样的 if 语句来做到这一点:

    from IPython.display import display, clear_output
    import ipywidgets as widgets
    
    button = widgets.Button(description="Click Me!")
    display(button)
    
    display_vals = ['a', 'b', 'c']
    i = 0
    
    def on_button_clicked(b):
        global i
    
        clear_output()
        if i < len(display_vals):
            print(display_vals[i])
            i += 1
    
    button.on_click(on_button_clicked)
    

    但是,如果您决定走这条路,您应该将 i 重命名为更独特的名称。

    【讨论】:

      猜你喜欢
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多