2016-12-09 8 views
2

Hallo Leute, ich bin neu hier.AttributeError: 'NoneType' Objekt hat kein Attribut

Ich bin Arbeit mit Python und ich brauche eine Funktion in der Klasse wie

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

und ich überprüfen, um dieses Modul

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' 

was soll ich tun?

+1

'name' ist ein Attribut der Instanz, so sollten Sie' a.b tun() 'und in einem zweiten Schritt' print (a.name) '. – Matthias

Antwort

2

NoneType bedeutet, dass anstelle einer Instanz unabhängig von Klasse oder ein Objekt Sie denken, Sie arbeiten mit, du hast eigentlich keine. Das bedeutet normalerweise, dass eine oben genannte Zuweisung oder Funktion fehlgeschlagen ist oder ein unerwartetes Ergebnis zurückgegeben hat. Siehe reference.

So können Sie so etwas tun.

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

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

oder

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

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

b() gibt nichts zurück. Daher gibt es None zurück.

Sie wahrscheinlich so etwas wie dies wollen:

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