class wordlist:
def is_within(word):
return 3 <= (len(word)) <= 5
def truncate_by_length(wordlist):
return filter(is_within, wordlist)
newWordlist = truncate_by_length(['mark', 'daniel', 'mateo', 'jison'])
print newWordList
基本上它做什麼,給定一個詞的長度的最小值和最大值,(在給定的例子是3和5分別),它應該打印的新列表在距給定原始長度的那些長度內的單詞。例如上面給出的單詞mark,daniel,mateo和jison,它應該打印只包含mark,mateo和jison的新列表。Python編程:未定義全局名稱'is_within'。我使用的過濾器列表
每當我運行它,我收到以下內容:
Traceback (most recent call last):
File "C:/Users/Makoy/Documents/AMC 125/sample.py", line 1, in <module>
class wordlist:
File "C:/Users/Makoy/Documents/AMC 125/sample.py", line 6, in wordlist
newWordlist = truncate_by_length(['mark', 'daniel', 'mateo', 'jison'])
File "C:/Users/Makoy/Documents/AMC 125/sample.py", line 5, in truncate_by_length
return filter(is_within, wordlist)
NameError: global name 'is_within' is not defined
對不起,如果我聽起來很小白等,但我剛開始學習Python的一個月前我就是一個完整的初學者用它。提前致謝。
'self'是像任何其他一個普通變量;這只是約定,它是方法的第一個參數的名稱。他的方法沒有'self'參數,所以他會在'self'上得到一個'NameError'。 – icktoofay
美好的一天!我只是做了你所說的,但仍然收到同樣的錯誤。我錯過了什麼嗎?就像icktoofay所說的那樣。 –
@ictoofay謝謝你的澄清,你是完全正確的,我已經修改我的答案,因爲這樣 – timc