python - 为什么我在尝试分配变量时收到 UnboundLocalError?
问题描述
我想将“main()”中的局部变量“length”分配给另一个函数返回的值。然而,当我分配变量时,IDLE 告诉我在分配它之前我正在引用它。如何分配此局部变量以使其不会导致错误?
import random
def length():
return 2
def main():
length = length()
index = random.randrange(0, length)
main()
我希望通过引用长度()将“长度”分配给“2”。在我看来,“length = length()”是一个简单、正确的分配。
IDLE 回溯是:
Traceback (most recent call last):
File "/home/user/code/test1.py", line 10, in <module>
main()
File "/home/user/code/test1.py", line 7, in main
length = length()
UnboundLocalError: local variable 'length' referenced before assignment
解决方案
length
要么是包含整数的局部变量,要么是引用函数的全局变量。不可能两者兼而有之。一旦您分配给它,它就是整个函数的局部变量,因此不再引用长度函数。
推荐阅读
- javascript - 编码为十六进制字符串:参数必须是字符串 node.js
- python - 在 Keras 中计算两个张量之间的余弦相似度
- html - 如何使反应阻止浏览器缓存外部加载的html?
- javascript - 如何从wordpress url中提取令牌并给它一个变量/值?
- javascript - 如何撤消 addEventListener?
- android - Epoxy 要求每个模型属性实现 equals 和 hashCode 错误
- java - 为什么在 HashMap 节点中维护键的哈希?
- laravel - vue.js 未在浏览器中显示
- react-native - Text.js 的这种变化是否会影响任何事情,是否有必要?
- php - 特定位置的 nginx 重写规则