为什么 ipywidget 按钮调用的 my 函数不返回输出?

1 python function button jupyter-notebook ipywidgets

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

我正在创建一个交互式 jupyter 笔记本,其设计为在单击按钮时执行功能。例如,第一个按钮称为“ 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)
Run Code Online (Sandbox Code Playgroud)

我期待在我可以做的功能之后

print(data)
Run Code Online (Sandbox Code Playgroud)

并返回 10

相反,它说:

名称“数据”未定义

小智 5

不确定您是否能够使其工作,但这将起作用,然后允许您使用变量外部的输出。

# 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)
Run Code Online (Sandbox Code Playgroud)

按下按钮输出 10

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

get_data.data
Run Code Online (Sandbox Code Playgroud)

请告诉我现在是否有效