【发布时间】:2023-04-05 22:41:01
【问题描述】:
我正在定义一个ipywidget button
,目的是在用户单击它时运行一个函数:
import ipywidgets as widgets
Button = widgets.Button(description='Search', disabled=False, button_style='info', tooltip='Search')
display(Button)
def whenclick(b):
if catalogue.selected_index+1 ==2:
dfS2 = pd.DataFrame({'Name': nameS2})
print(dfS2)
Button.on_click(whenclick)
nameS2
是:
['S2A_MSIL2A_20191205T110431_N0213_R094_T30TVK_20191205T123107.zip',
'S2B_MSIL2A_20191203T111329_N0213_R137_T30TVL_20191203T123004.zip']
此代码的工作方式是在单击按钮 dfS2
时打印,因为我使用的是 print
命令。但是,我想将dataframe
显示为变量(不调用`print)。
def whenclick2(b):
if catalogue.selected_index+1 ==2:
dfS2 = pd.DataFrame({'Name': nameS2})
dfS2
Button.on_click(whenclick2)
当使用第二个选项并点击按钮时,没有任何内容被传递。例如,我尝试使用return dfS2
和许多其他方法(global
变量等),例如:
if catalogue.selected_index+1 ==2:
def whenclick(b):
dfS2 = pd.DataFrame({'Name': nameS2})
return dfS2
Button.on_click(whenclick)
但是当我点击我的按钮时总是没有输出。对此有任何想法吗?我一直在检查ipywidget
文档中的示例,但在我的情况下尝试模拟相同的示例不起作用https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20Events.html
-- 编辑--
根据@skullgoblet1089 的回答,我正在尝试以下代码:
import ipywidgets as widgets
Button = widgets.Button(description='Search', disabled=False, button_style='info', tooltip='Search')
display(Button)
def whenclick2(b):
global data_frame_to_print
if catalogue.selected_index+1 ==2:
dfS2 = pd.DataFrame({'Name': nameS2})
data_frame_to_print = dfS2.copy()
dfS2
Button.on_click(whenclick2)
但是,当点击按钮时,什么都不会显示。
【问题讨论】:
-
使用
global
关键字使变量成为全局变量。或者使用类将类/实例级变量封装在适当的上下文中。 -
@skullgoblet1089 能否请您添加解决方案的代码示例。 python 新手,不确定我是否完全理解封装类的意思。谢谢
标签:
python
function
variables
printing
widget
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:访问 Python 函数中定义的变量 - Python技术站