2016-11-11 58 views
0

假設我有一個方法foo:的Python:可變從更高的範圍「賦值之前引用的」

def foo(string): 
    def bar1(): 
     if '1' in string: 
      string = string[2:] 
     else: 
      bar2() 

    def bar2(): 
     if ('2' in string): 
      string.insert(5, '1') 
     else: 
      string.insert(5, '2') 

    bar1() 

不幸的是,這將返回一個錯誤,說明局部變量string被賦值之前引用。我認爲該字符串將從foo的範圍繼承。我錯了嗎?請注意,變量string實際上是一個列表(對於混淆抱歉)。

+0

嘗試字符串傳遞到BAR1()這樣的:def BAR1(串)。 – Bryan

回答

相關問題