为什么会出现“名称未定义”错误消息?

时间:2020-04-22 14:51:10

标签: python function

我正在上Python函数在线课程。我收到一个NameError,如下所示。有人可以弄清楚为什么我会收到这样的错误吗?

def student_details (**details_dictionary): 
    if 'name' in details : 
        print ("Name:", details['name'] ) 
    if 'age' in details : 
        print ("Age:", details['age'] ) 
    if 'college' in details : 
        print ("College:", details['college'] )

student_details(name="John")

 NameError Traceback (most recent call last)
 <ipython-input-24-9617ce938851> in <module>
 ----> 1 student_details(name="John")

 <ipython-input-23-1424bf8f28d7> in
 student_details(**details_dictionary)
       1 def student_details (**details_dictionary):
 ----> 2     if 'name' in details :
       3         print ("Name:", details['name'] )
       4     if 'age' in details :
       5         print ("Age:", details['age'] )

NameError: name 'details' is not defined

3 个答案:

答案 0 :(得分:2)

尝试用details更改details_dictionary

答案 1 :(得分:1)

def student_details (**details_dictionary): 

您在这里将参数命名为details_dictionary

    if 'name' in details : 
        print ("Name:", details['name'] ) 

然后在此处尝试使用名为details的名称。这些名称应相同。我建议您将前者更改为details。通常应该避免使用dictionarylist之类的词来描述变量名中数据结构的种类。例如,如果您返回并将字典更改为列表,则也必须跟踪变量名才能对其进行更改。您可以通过将详细信息保留在变量名之外来避免执行此额外工作。

答案 2 :(得分:0)

您没有任何名为details的变量或引用。将details更改为details_dictionary或将参数名称更改为与details

相对应