麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

Python UnboundLocalError和NameError錯誤根源案例解析

2020-02-15 23:29:04
字體:
來源:轉載
供稿:網友

如果代碼風格相對而言不是那么的pythonic,或許很少碰到這類錯誤。當然并不是不鼓勵使用一些python語言的技巧。如果遇到這這種類型的錯誤,說明我們對python中變量引用相關部分有不當的認識和理解。而這又是對理解python相關概念比較重要的。這也是本文寫作的原因。

 本文為理解閉包相關概念的做鋪墊,后續會詳細深入的整理出閉包相關的博文,敬請關注。

1.案例分析

在整理閉包相關概念的過程中,經常發現UnboundLocalError和NameError這兩個錯誤,剛開始遇到的時候可能很困惑,對這樣的錯誤無從下手。

1.1 案例一:

def outer_func():  loc_var = "local variable"  def inner_func():    loc_var += " in inner func"    return loc_var  return inner_funcclo_func = outer_func()clo_func()

錯誤提示:

Traceback (most recent call last):
  File "G:/Project Files/Python Test/Main.py", line 238, in <module>
    clo_func()
  File "G:/Project Files/Python Test/Main.py", line 233, in inner_func
    loc_var += " in inner func"
UnboundLocalError: local variable 'loc_var' referenced before assignment

1.2 案例二:

 def get_select_desc(name, flag, is_format = True):   if flag:     sel_res = 'Do select name = %s' % name  return sel_res if is_format else name  get_select_desc('Error', False, True)

錯誤提示:

Traceback (most recent call last):
  File "G:/Project Files/Python Test/Main.py", line 247, in <module>
    get_select_desc('Error', False, True)
  File "G:/Project Files/Python Test/Main.py", line 245, in get_select_desc
    return sel_res if is_format else name
UnboundLocalError: local variable 'sel_res' referenced before assignment

1.3 案例三:

def outer_func(out_flag):  if out_flag:    loc_var1 = 'local variable with flag'  else:    loc_var2 = 'local variable without flag'  def inner_func(in_flag):    return loc_var1 if in_flag else loc_var2  return inner_funcclo_func = outer_func(True)print clo_func(False)

  錯誤提示:

Traceback (most recent call last):
  File "G:/Project Files/Python Test/Main.py", line 260, in <module>
    print clo_func(False)
  File "G:/Project Files/Python Test/Main.py", line 256, in inner_func
    return loc_var1 if in_flag else loc_var2
NameError: free variable 'loc_var2' referenced before assignment in enclosing scope

 上面的三個例子可能顯得有點矯揉造作,但是實際上類似錯誤的代碼都或多或少可以在上面的例子中找到影子。這里僅僅為了說明相關概念,對例子本身的合理性不必做過多的關注。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久金品 | 天堂亚洲一区 | 精品国产91久久久久 | 亚洲人片在线观看 | 成人免费毛片一 | 国产二区三区视频 | 日本中文一级片 | 国产一级毛片在线看 | 一区二区久久电影 | 私库av在线免费观看 | 午夜爽爽爽男女免费观看hd | 国产精品久久久久久久久久久天堂 | 日韩中文一区 | 一区二区三区欧美在线观看 | 国产成视频在线观看 | 亚洲国产精品久久久久久久久 | 高清在线国产 | 国产精品一区在线免费观看 | 中文字幕网在线 | 性猛交ⅹxxx乱巴西 欧美日韩1区2区3区 | 日本欧美一区二区三区视频麻豆 | 久久久久国产一区二区三区不卡 | 久久久久久久爱 | bt 自拍 另类 综合 欧美 | 视频一区二区三区在线播放 | 精品久久一区二区 | 一级大片久久 | 久久综合精品视频 | 影视免费观看 | 黄色av免费电影 | 综合网日日天干夜夜久久 | 日本一区二区视频在线观看 | 性视频久久| 九九热免费在线观看 | 99国语露脸久久精品国产ktv | 免费放黄网站在线播放 | 日本一区二区高清不卡 | 欧美一级高潮片免费的 | 国产免费观看一区二区三区 | 黄色午夜剧场 | 北原夏美av |