我尝试使用ipywidgets
来显示我的列表中的下一个值(在Jupyter笔记本中),在单击按钮后显示为display_vals
。但是,使用以下代码段,我收到错误
local variable 'i' referenced before assignment
这是我的代码片段
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)
我想我只是不知道在点击按钮时解析变量的方法。
答案 0 :(得分: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
重命名为更独特的东西。