我正在上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
答案 0 :(得分:2)
尝试用details
更改details_dictionary
答案 1 :(得分:1)
def student_details (**details_dictionary):
您在这里将参数命名为details_dictionary
if 'name' in details :
print ("Name:", details['name'] )
然后在此处尝试使用名为details
的名称。这些名称应相同。我建议您将前者更改为details
。通常应该避免使用dictionary
或list
之类的词来描述变量名中数据结构的种类。例如,如果您返回并将字典更改为列表,则也必须跟踪变量名才能对其进行更改。您可以通过将详细信息保留在变量名之外来避免执行此额外工作。
答案 2 :(得分:0)
您没有任何名为details
的变量或引用。将details
更改为details_dictionary
或将参数名称更改为与details