Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: Что делать, если видишь ошибку 'is not defined в питоне'?

  1. Что делать, если видишь ошибку 'is not defined в питоне'?

    Всем привет! Пытаюсь дебажить код на Питоне, но постоянно выскакивает ошибка типа 'NameError: name 'some_var' is not defined'. Я уже проверил, что имя переменной правильно написано, и оно должно быть определено по идее. Может кто-то сталкивался с такой проблемой? Этому куску кода тысяча лет в обед, всё работало нормально, а тут вдруг началось такое. Что вообще может значить эта ошибка? Может, это какая-то мелочь, которую я упускаю?



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Эй! Да, эта ошибка обычно говорит о том, что переменная или функция, которую ты используешь, не была объявлена перед её использованием. Проверь, что ты не опечатался в названии переменной. Если всё ок, может проблема в области видимости (scope). Вот пример:

    Программный код:
    def foo():
    bar 'Hello'

    print(bar)  # Ошибка 'NameError: name 'bar' is not defined' 
    Здесь `bar` определена внутри функции, так что вне её области действия `bar` не существует.

  4. Цитата Сообщение от GalacticExplorer
    Эй! Да, эта ошибка обычно говорит о том, что переменная или функция, которую ты используешь, не была объявлена перед её использованием. Проверь, что ты не опечатался в названии переменной. Если всё ок, может проблема в области видимости (scope). Вот пример:

    Программный код:
    def foo():
    bar 'Hello'

    print(bar)  # Ошибка 'NameError: name 'bar' is not defined' 
    Здесь `bar` определена внутри функции, так что вне её области действия `bar` не существует.
    Да, хорошее замечание про область видимости. Много раз сам на это напарывался, особенно когда функции друг возле друга.

  5. Я б проверьнул, всё ли ты импортнул. Может, забыл импортнуть какой модуль? Часто бывает, что элементарно забываем:

    Программный код:
    import модулькоторый забыл

    # Или другой пример с своего опыта:
    import os

    print(os.getcwd())  # Теперь ошибки нет 

  6. Цитата Сообщение от Анатолий Сергеевич
    Я б проверьнул, всё ли ты импортнул. Может, забыл импортнуть какой модуль? Часто бывает, что элементарно забываем:

    Программный код:
    import модулькоторый забыл

    # Или другой пример с своего опыта:
    import os

    print(os.getcwd())  # Теперь ошибки нет 
    Да, правда. Импорты - это вечная засада, особенно когда торопишься.

  7. Может быть, ты трайшвал обращение к переменной до её иниталайза? Например:

    Программный код:
    print(foo)
    foo 'Hello'  # NameError: name 'foo' is not defined 
    В таких случаях переменная должна быть объявлена до момента её использования.

  8. Цитата Сообщение от KatyaFire
    Может быть, ты трайшвал обращение к переменной до её иниталайза? Например:

    Программный код:
    print(foo)
    foo 'Hello'  # NameError: name 'foo' is not defined 
    В таких случаях переменная должна быть объявлена до момента её использования.
    Точно, у меня тоже так было пару раз, надо код сверху вниз читать внимательно.

  9. Всем хай! Похоже, ты столкнулся с каким-то синтаксическим приколом. Проверь, все ли парные скобки, кавычки и разного рода эти символы закрыты. Вспоминай базу все же Вот как может выглядеть кусок кода:

    Программный код:
    def my_func():
    my_var "Hello"
    print(my_var)

    my_func()  # Тут всё работает
    print(my_var)  # А тут уже нет: NameError: name 'my_var' is not defined 
    Если внутри функций используешь, то они там и остаются. И отдельно, если функция не вызвана, переменные внутри неё не инитятся.

  10. Цитата Сообщение от IvanVolkov
    Всем хай! Похоже, ты столкнулся с каким-то синтаксическим приколом. Проверь, все ли парные скобки, кавычки и разного рода эти символы закрыты. Вспоминай базу все же Вот как может выглядеть кусок кода:

    Программный код:
    def my_func():
    my_var "Hello"
    print(my_var)

    my_func()  # Тут всё работает
    print(my_var)  # А тут уже нет: NameError: name 'my_var' is not defined 
    Если внутри функций используешь, то они там и остаются. И отдельно, если функция не вызвана, переменные внутри неё не инитятся.
    Да, идея со скобками и кавычками тоже дельная, бывает, что запутаешься в сложных структурах!

Страница 1 из 2 12 ПоследняяПоследняя