Автор оригинала: Girish Rao.
Переводчик Python бросает NameError
Исключение, если он встречает неопределенную переменную или имя функции. Чтобы исправить это, вы должны выяснить, почему переменная не определена – самые частые ошибки (1) для использования переменной или имени функции в коде до Это было определено или (2), чтобы пропустить имя в определении или использовании.
Посмотрите на минимальный пример в нашем интерактивном коде Shell:
Упражнение : Определите переменную quote_variable. Прежде чем использовать его и исправить ошибку!
Примечание : Все объяснения и решения, приведенные ниже, были проверены с использованием Python 3.8.5.
Проблема
Когда человек начинает писать код Python, они столкнутся с NameError исключение. Переводчик Python бросает это исключение для состояния ошибки. Опытные кодеры Python, даже Легенды Python, как Guido (Я полагаю), вдаю в эти ошибки, время от времени. В его простейшей форме ошибка выглядит как что-то похожее на следующее:
>>> print(some_variable) Traceback (most recent call last): File "", line 1, in NameError: name 'some_variable' is not defined >>>
Желаемый вывод
Эта статья направлена на помощь читателю понять некоторые из наиболее распространенных причин этой ошибки.
>>> print(some_variable) hello world >>>
Желаемый выход, предполагает переменную quote_variable
, указывает на строку "
Здравствуйте, мир "
Отказ Другими словами, желаемый вывод будет бесплатным запуском кода Python Reader Python.
Фон
Python – это интерпретированный язык. Это означает, что он интерпретирует любой код Python, строка по линии, с начала кода до конца. Выполнение обычно останавливается при первой ошибке, который столкнулся с переводчиком Python. Сообщение об ошибке обычно печатает полезную информацию о проблеме. В большинстве случаев читатель может отладки, вывести и находить ошибочный синтаксис и исправить его. Этот блог попытается описать одну такую общую проблему, называемую NameError Отказ
Отсутствующее определение переменной
Одна общая причина NameError Исключение – это отсутствующее определение переменной. Как уже упоминалось ранее, Python является интерпретированным языком. Это означает, что читатель должен определять переменные перед использованием их. Рассмотрим следующий код. Читатель стремится попробовать какой-то основной код Python Real быстро. Таким образом, они уволяют переводчик Python, чтобы попробовать их свежие навыки Python.
>>> print(some_variable) Traceback (most recent call last): File "", line 1, in NameError: name 'some_variable' is not defined >>>
Ой !!! Читатель узнает, что они не определены quote_variable
, прежде чем они использовали это! Исправьте эту проблему, как показано ниже. Определить quote_variable
перед использованием этого!
>>> some_variable = 'Hello World' >>> print(some_variable) Hello World >>>
Имя переменной с ошибками
Имена переменной с ошибками ошибок могут быть ошибочными аналогичным образом. Рассмотрим следующий пример код.
>>> som_variable = 'Hello World' >>> print(some_variable) Traceback (most recent call last): File "", line 1, in NameError: name 'some_variable' is not defined >>>
Примечание : som_variable.
не то же самое, что quote_variable.
(то есть отсутствует 'E'
)
Отсутствующие функции определения
Еще одна общая причина NameError Исключение представляет собой недостающее определение функции. Как и переменные определения, читатель должен определить любую функцию, прежде чем использовать его. Рассмотрим следующий код.
>>> some_other_string = 'Hello World' >>> some_function(some_other_string) Traceback (most recent call last): File "", line 1, in NameError: name 'some_function' is not defined >>>
Опять же, функция «Некоторые_функция»
не определен до его использования. Исправьте эту проблему, как показано ниже. Определить «Некоторые_функция»
перед использованием этого.
>>> def some_function(some_string): ... print(some_string) ... >>> some_other_string = 'Hello World' >>> some_function(some_other_string) Hello World >>>
Название функции с ошибками
Имена функций с ошибками ошибок могут быть ошибочными похожими. Рассмотрим следующий пример код.
>>> def som_function(some_string): ... print(some_string) ... >>> some_other_string = 'Hello World' >>> some_function(some_other_string) Traceback (most recent call last): File "", line 1, in NameError: name 'some_function' is not defined >>>
Примечание : 'som_function'
не то же самое, что «Некоторые_функция»
(то есть отсутствует 'E'
)
Неправильный объем
Еще одна общая причина NameError Исключение – это использование переменной в неправильном объеме. Рассмотрим следующий пример.
>>> ## Define the function some_function() >>> def some_function(): ... a_local_variable = 'I am Local…' ... print("Printing a Local variable from within a function definition: " + a_local_variable) ... >>> ## Call some_function() >>> some_function() Printing a Local variable from within a function definition: I am Local... >>> >>> ## Try to print "a_local_variable" from outside the function definition >>> print("Attempting to print the variable from outside some_function(): " + a_local_variable) Traceback (most recent call last): File "", line 1, in NameError: name 'a_local_variable' is not defined >>>
NameError Исключение произошло потому, что a_local_variable
вызвано из-за внешнего объема функций. Один из способов исправить это, определяя a_local_variable
в качестве глобальной переменной вместо этого. Рассмотрим следующий пример.
>>> ## Define a Global Variable >>> a_global_variable = 'I am global…' >>> >>> ## Define the function some_function() >>> def some_function(): ... print("Printing the Global variable from within a function definition: " + a_global_variable) ... >>> ## Call some_function() >>> some_function() Printing the Global variable from within a function definition: I am global... >>> >>> ## Try to print "a_global_variable" from outside the function definition >>> print("Attempting to print the Global variable from outside some_function(): " + a_global_variable) Attempting to print the Global variable from outside some_function(): I am global… >>>
Unquoted String in Print ()
Забывая цитировать строки в Печать ()
Заявление может вызвать NameError исключение. Это не происходит часто, но хорошо знать, что это может произойти. Читатель, скорее всего, увидит SyntaxError а не NameError Отказ Рассмотрим следующие примеры …
>>> print(Hello) Traceback (most recent call last): File "", line 1, in NameError: name 'Hello' is not defined >>> print(Hello World) File " ", line 1 print(Hello World) ^ SyntaxError: invalid syntax >>>
В приведенных выше примерах вышеупомянутые строки вызывают ошибки. NameError в одном случае и SyntaxError в другой.
В этом случае исправление просто. Приложите струны в цитатах.
>>> print('Hello') Hello >>> print('Hello World') Hello World
Заключение
Такие ошибки произойдут в кодировании читателя. Важно учиться у него и двигаться дальше. Со временем читатель станет лучше в кодировании, поскольку они включают хорошие привычки кодирования. Такие ошибки происходят меньше и меньше, поскольку читатель становится более опытным.
Финктерская академия
Этот блог был доставлен вам Girish , студент Финктерская академия . Вы можете найти его Профиль намного здесь Отказ
использованная литература
Все исследования для этой статьи в блоге было сделано с использованием Python Documents , Поисковая система Google и общая база знаний Финктерская академия и Переполнение стека Общины. Концепции и идеи были также исследованы из Бостонский университет и Карьера карма общины.
Оригинал: “https://blog.finxter.com/pythons-nameerror/”