为什么 ipywidget 按钮调用的我的函数不是 return 输出?

Why does the my function called by ipywidget button not return an output?

我正在使用按钮调用函数,但函数的输出似乎没有保存。

我正在创建一个交互式 jupyter notebook,它被设计为在单击按钮时执行功能。例如,第一个按钮名为“Get data”,它将创建新变量。然后第二个按钮“Analyze data”会对变量进行一些分析。问题是“Get data”的输出没有保存在函数外。

# GET DATA
get_data_button = widgets.Button(description='Get Data')

def get_data(b):

    data = 10
    print(data)

    return data

# DISPLAY BUTTON
get_data_button.on_click(get_data)
display(get_data_button)

我期待在函数之后我可以做

print(data)

和return10

而是说:

name 'data' is not defined

不确定您是否能够让它工作,但这会起作用,然后将允许您在变量之外使用输出。

# GET DATA
get_data_button = widgets.Button(description='Get Data')

def get_data(b):
    get_data.data = 10
    print(get_data.data)

    return get_data.data

# DISPLAY BUTTON
get_data_button.on_click(get_data)
display(get_data_button)

按下按钮输出 10

并且您可以使用以下函数访问函数外部的输出:

get_data.data

请让我知道现在是否有效