首页 > 解决方案 > NameError,名称未定义 - 如何在变量被定义/声明/分配之前使用它?

问题描述

我目前正在构建一个包含多个图表的仪表板。用户可以选择使用 plotly-dash 下拉菜单来选择当前月份。图表的初始值始终是当前月份。

现在到我的问题。这些图表需要多次计算,这些计算是在 Pandas 中预先完成的。我的代码顺序如下:

  1. 定义数据框
  2. 使用月份变量“T”(硬编码)在 Pandas 中进行计算
  3. 使用 plotly 生成图表并使用下拉菜单将它们绘制在 plotly dash
  4. 运行服务器并打印仪表板

我在步骤 3 中定义的下拉输出是:

def update_output(value):
    return 'You have selected month "{}"'.format(value)

我想在第 1 步之后就使用此输出 - 因此我可以使计算动态化并使所选月份不被硬编码。本质上,我想将我的硬编码计算行重写为:

df[column].where[df['month_column'] = update_output].sum()

关于如何在计算期间使用此变量 update_output 而不会出现 NameError(未识别变量)错误的任何想法?

我已经阅读了有关全局、本地、环境变量的信息……尽管在定义之前似乎找不到使用变量的方法……

非常感谢你的帮助!

标签: pythonnumpyplotlyplotly-dash

解决方案


在赋值之前有很多方法可以定义变量。一种方法是使用内置类型函数。python中有很多不同的类型,你可以访问这个网站了解所有类型是什么,但是你可以给一个变量一个类型的空模板。您所要做的就是使用内置类型函数之一。例如,如果您想创建一个空字符串类型对象,您可以执行以下操作。

basic_string = str()

如果您只想做一个空对象,可以为这个变量分配任何类型(甚至是自定义对象),您可以执行以下操作。

basic_object = object

推荐阅读