python-3.x - 能够访问一个 if 语句中的变量,但不能访问其他
问题描述
这是我的代码中的一个片段,奇怪的是为什么我能够在第三个 if 语句中访问名为 'calBegPoint ' 的变量,而不是第二个。
if graph != None:
for trace in graph['data']:
if 'LSR(' in trace['name']:
calBegPoint = trace['x'][0] #Statement 1
if '% change' in trace['name']:
print(calBegPoint) #Statement 2
if 'LSR Extended' in trace['name']:
print(calBegPoint) #Statement 3
当我运行此代码时,我在语句 2 上收到以下错误,但是,如果我评论它,我没有收到语句 3 的错误。为了解决这个问题,我尝试calBegPoint= "Hi"
在整个代码段之前声明。这样我就没有得到错误,但是报表 2 上打印的值是“Hi”,而不是我计算的值。
我一直在尝试调试它几个小时。任何方向/指针将不胜感激
UnboundLocalError: local variable 'calBegPoint' referenced before assignment
解决方案
错误消息试图告诉您calBegPoint
在定义它之前使用它。
在您的情况下,第二条或第三条if
语句的第一次执行位于第一条if
语句的第一次执行之前。
推荐阅读
- css - 修改 CSS 中的一些属性以使按钮阴影自动发光,而不仅仅是在悬停时
- machine-learning - 多类文本分类(使用 TFIDF 和 SVM)。如何实现一个反馈可能属于多个类的场景?
- reference - 如何在单元测试项目中添加程序集引用?
- java - 具有该 ID 的元素已存在于数据库中
- c# - 如何使用 ARFoundation 与对象交互?
- java - 这条毕加索线没有加载我的图像是否有原因?
- winapi - 访问比 LongPointer 更多的窗口额外字节
- c# - 使用 C# 以编程方式刷新 Power Apps 门户中的实体的数据
- angular - 如何在角度可观察订阅中对代码进行单元测试
- .htaccess - Symfony 5 EasyAdmin 2.x 'admin' 路由不工作