【问题标题】:NameError, name not defined - how to use a Variable before it it is defined/declared/assigned?NameError,名称未定义 - 如何在变量被定义/声明/分配之前使用它?
【发布时间】:2021-01-19 20:54:21
【问题描述】:

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

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

  1. 定义数据框
  2. 在 Pandas 中使用月份变量“T”(硬编码)进行计算
  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(未识别变量)错误的任何想法?

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

非常感谢您的帮助!

【问题讨论】:

  • 你从哪里得到这个 NameError?请提供完整的追溯。 update_output 定义在哪里?是否与df[column].where[...] 行在同一个文件中?

标签: python numpy plotly plotly-dash


【解决方案1】:

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

basic_string = str()

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

basic_object = object

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 2021-12-12
    • 2021-09-13
    • 2018-01-24
    • 1970-01-01
    • 2014-01-25
    相关资源
    最近更新 更多