2016-08-09 75 views
-1

我想製作一個listool模塊。除了NameError無法正常工作

我想做一個檢查函數,它檢查列表中項目的可用性。

這裏是我的非工作代碼:

def check(lst, item): 
    try: 
     if item in lst: 
      return "Requested Item In List" 
     else: 
      return "Requested Item Not In List" 
    except: 
     pass 

我想使它所以如果沒有清單它只是傳遞。

所以,當我沒有名單做,這裏是錯誤:

>>> import listools 
>>> listools.check(example_list, 'example') 
Traceback (most recent call last): 
File "<pyshell#1>", line 1, in <module> 
    listools.check(example_list, 'example') 
NameError: name 'example_list' is not defined 
>>> 

所以,我希望它做的是什麼也不做,如果沒有清單 但它有錯誤出來( NameError)

+1

難道你不覺得作爲縮進的30個空間是一個**小**多一點? – Kasramvd

+0

你的代碼不起作用?它做了什麼是不正確的?你想要做什麼,它沒有做什麼? – khelwood

+0

@Kasramvd不,當我複製並粘貼它時,它就是這樣的 –

回答

0

NameError通常表示您嘗試引用的變量不存在。如果你看看你的錯誤信息,它說name 'example_list' is not defined。這應該告訴你,我試圖使用example_list,但程序找不到它。這樣做的大多數原因是:a)你在函數/循環中定義了一個變量,這個變量不能在函數/循環之外訪問(局部變量),或者b)你根本沒有定義變量。在這種情況下,假設錯誤消息告訴你它是而不是這個函數有問題,但是和你的其他代碼一樣,你很可能忘了定義一個變量。在這種情況下,您應該在使用之前嘗試定義example_list