Почему я получаю сообщение об ошибке «имя не определено»? - PullRequest
0 голосов
/ 22 апреля 2020

Я прохожу онлайн-курс по 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 ]

2 голосов
/ 22 апреля 2020

попробуйте изменить details с details_dictionary

1 голос
/ 22 апреля 2020
def student_details (**details_dictionary): 

Здесь вы называете параметр details_dictionary

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

Затем здесь вы пытаетесь использовать что-то с именем details. Эти имена должны быть одинаковыми. Я предлагаю вам изменить первый на details. Как правило, вам следует избегать использования таких слов, как dictionary или list, которые описывают тип структуры данных в имени вашей переменной. Если вы вернетесь и, например, смените словарь на список, то вам придется отслеживать имена переменных, чтобы изменить их. Вы можете избежать этой дополнительной работы, оставив эту деталь вне имени вашей переменной.

0 голосов
/ 22 апреля 2020

У вас нет переменной или ссылки с именем details. Измените details на details_dictionary или измените имя параметра, чтобы оно соответствовало details

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...