Skip to main content
 首页 » 编程设计

python语法困惑: name is not defined

2025年05月04日17lautakyan007

我一直在学习“用艰难的方式学习 Python”,这段特殊的代码让我很头疼:

def break_words(stuff): 
    """This function will break up words for us.""" 
    words = stuff.split(' ') 
    return words 
 
def sort_words(words): 
    """Sort the words.""" 
    return sorted(words) 
 
def print_first_word(words): 
    """Prints the first word after popping it off.""" 
    word = words.pop(0) 
    print word 
 
def print_last_word(words): 
    """Prints the last word after popping it off.""" 
    word = words.pop(-1) 
    print word 
 
def sort_sentence(sentence): 
    """Takes in a full sentence and returns the sorted words.""" 
    words = brea_words(sentence) 
    return sort_words(words) 
 
def print_first_and_last(sentence): 
    """Prints the first and last words of the sentence.""" 
    words = break_words(sentence) 
    print_first_word(words) 
    print_last_word(words) 
 
def print_first_and_last_sorted(sentence): 
    """Sorts the words then prints the first and last one.""" 
    words = sort_sentence(sentence) 
    print_first_word(words) 
    print_last_word(words)  

导入模块后出现错误:

>>> import ex25 
>>> sentence = "All good things come to those who wait." 
>>> words = ex25.break_words(sentence) 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
  File "ex25.py", line 4, in break_words 
    return words 
NameError: global name 'words' is not defined 

我哪里错了?我检查了代码数百万次...

请您参考如下方法:

你试过运行吗

reload(ex25) 

?如果您导入一个文件,然后更改该文件,python 进程不知道您更改了它。您必须重新启动,或者告诉它再次查看模块。