我想将局部变量“ main()”中的“ length”分配给另一个函数返回的值。但是,在分配变量的同时,IDLE告诉我在分配变量之前先对其进行引用。如何分配此局部变量,使其不会导致错误?
import random
def length():
return 2
def main():
length = length()
index = random.randrange(0, length)
main()
我希望通过引用length()将“ length”分配给“ 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
答案 0 :(得分:2)
length
是包含整数的局部变量,或者是引用该函数的全局变量。不能两者兼有。分配给它后,它便是整个函数的局部变量,因此不再引用长度函数。