2017-02-27 86 views
1

我在python流行的錯誤,如here如何解決函數外的UnboundLocalError?

x = 10 
def foo(): 
    x += 1 
    print(x) 
foo() 

如果它運行,我們得到這個錯誤,如以下

UnboundLocalError: local variable 'x' referenced before assignment 

但在我的情況下,該功能是不是我做了一個,但它包含在圖書館中。在這種情況下,我怎樣才能解決這個問題,而無需在函數中聲明全局關鍵字的變量?我認爲修改庫中的函數並不是一個好主意。

+2

如果該功能是在一個庫,該庫被打破。這樣的功能無法工作。 – BrenBarn

+1

您應該聯繫該庫的維護者 –

回答

0

由於您無法控制該功能,因此最好重命名您的變量。可能會將它命名爲不同的東西?

是的。

  • 在函數範圍內使用全局是不好的。
  • 由於您沒有創建庫,因此您可能無法修改它很容易(下一次更新會重寫您的更改)。
  • 即使你可以修改它,使用global將是壞
+0

該變量在函數中聲明以便我不能重命名它。 – verystrongjoe

+0

函數外部的變量。你可以重命名那個,不是? – masnun

+0

@mansun不,我不能重命名變量,問題是它在分配之前需要初始化。替換變量名稱不能解決方案.. – verystrongjoe