我有一个功能很好的函数,它检查ipy.datagrid的单元格标题,然后根据标头设置单元格的颜色。
def header_bg_color(cell):
if cell.value in ['Portfolio -30%','Change -30%']:
return '#f3722c'
elif cell.value in ['Portfolio -20%','Change -20%']:
return '#f8961e'
elif cell.value in ['Portfolio -10%','Change -10%']:
return '#f9844a'我已经将'Portfolio -10%‘列的名称更改为'Portfolio -10%’+ igwd_change ...where igwd_change是我前面定义的变量。
我认为简单的改变
elif cell.value in ['Portfolio -10%','Change -10%']:
return '#f9844a'至
elif cell.value in ['Portfolio -10%' + igwd_change,'Change -10%']:
return '#f9844a'会起作用的,但我发现了一个错误
Py2VegaNameError:未定义名称'igwd_change‘,可用变量为'cell’、'default_value‘、'index',注意只支持Python的一个子集
但是,定义了igwd_change (这个单元上的单元肯定已经运行),我可以在检查之后调用单元格中的变量。
编辑以显示单元按要求工作(Portfolio-10%),而单元组合为0% (-3.2%),这是Portfolio 0% + igwd_change没有应用所需的vega函数。

发布于 2022-11-22 06:40:41
您需要将igwd_change变量作为参数传递到header_bg_color函数中。
def header_bg_color(cell):应该是
def header_bg_color(cell, igwd_change):现在调用此函数时,请确保传递相同的变量。
header_bg_color(cell, igwd_change)或
header_bg_color(cell, "any custom parameter you want here")https://stackoverflow.com/questions/74522406
复制相似问题