NameError, когда метод четко определен [дубликат]

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

7
задан Christian Sauer 2 March 2015 в 09:03
поделиться

2 ответа

Поскольку test() не знает, кто является abc, этот msg NameError: global name 'abc' is not defined, который вы видите, должен произойти, когда вы вызываете b.test() (вызов b.abc() в порядке), измените его на:

class a:
    def abc(self):
        print "haha" 
    def test(self):
        self.abc()  
        # abc()

b = a()
b.abc() #  'haha' is printed
b.test() # 'haha' is printed
15
ответ дан Paul Lo 19 August 2018 в 09:01
поделиться
8
ответ дан G5W 19 August 2018 в 09:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: