簡體   English   中英

為什么在嘗試分配變量時出現UnboundLocalError?

[英]Why am I getting an UnboundLocalError while trying to assign a variable?

我想將本地函數“ main()”中的“ length”分配給另一個函數返回的值。 但是,在分配變量的同時,IDLE告訴我在分配變量之前先對其進行引用。 如何分配此局部變量,使其不會引起錯誤?

import random

def length():
    return 2

def main():
    length = length()
    index = random.randrange(0, length)

main()

我希望通過引用length()將“ length”分配為“ 2”。 在我看來,“ length = length()”是一個簡單,正確的賦值。

空閑回溯是:

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是包含整數的局部變量,或者是引用該函數的全局變量。 不能兩者兼有。 分配給它后,它便是整個函數的局部變量,因此不再引用長度函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM