AttributeError: объект NoneType не имеет атрибута

Я работаю с python, и мне нужна функция в классе, например

class asas(object):
    def b(self):
        self.name = "Berkhan"
a = asas()
a.b().name

и я проверяю этот модуль

Traceback (most recent call last):
  File "C:\Users\Berkhan Berkdemir\Desktop\new 1.py", line 5, in <module>
    a.b().name
AttributeError: 'NoneType' object has no attribute 'name'

Что я должен делать?


person Community    schedule 09.12.2016    source источник
comment
name является атрибутом экземпляра, поэтому вы должны сделать a.b() и на втором этапе print(a.name).   -  person Matthias    schedule 09.12.2016


Ответы (2)


NoneType означает, что вместо экземпляра любого класса или объекта, с которым, по вашему мнению, вы работаете, на самом деле у вас нет None. Обычно это означает, что присваивание или вызов функции, приведенный выше, не удался или вернул непредвиденный результат. См. справку.

Итак, вы можете сделать что-то вроде этого.

class asas(object):
    def b(self):
        self.name = "Berkhan"
        return self.name

a = asas()
print(a.b()) # prints 'Berkhan'

or

class asas(object):
    def b(self):
        self.name = "Berkhan"
        return self

a = asas()
print(a.b().name) # prints 'Berkhan'
person Wasi Ahmad    schedule 09.12.2016

b() ничего не возвращает. Поэтому он возвращает None.

Вы, вероятно, хотите что-то вроде этого:

class asas(object):
    def b(self):
        self.name = "Berkhan"
        return self
a = asas()
a.b().name
person Ilya V. Schurov    schedule 09.12.2016