2017-02-21 4 views
-3
class EceA: 
    def __init__(s,name,age): 
     s.name = name 
     s.age = age 
    def disp(): 
     return("the student name is" + s.name +"and the age is"+str(s.age)) 

reg1=("sam",21) 


Traceback (most recent call last): 
    File "<pyshell#27>", line 1, in <module> 
    reg1.disp 
AttributeError: 'tuple' object has no attribute 'disp' 
+2

Ihnen fehlt Ihr Klassenname, z. 'reg1 = EceA ('sam', 21)' und Ihnen fehlt die 'instance' Variable für' disp() '. Beachten Sie, dass es üblich ist, die 'instance' Variable' self' zu nennen (Sie benutzten 's' in' __init __() '. Dies sind elementare Fehler, ich würde mehr anfängliches Unterrichtsmaterial lesen. – AChampion

Antwort

1

Sie benötigen ein Objekt der Klasse mit den Parametern zu machen:

reg1 = EceA("sam",21) 
reg1.disp() 

Darüber hinaus müssen Sie self Paramter auf die disp() Funktion zu übergeben, wie:

def disp(self): 
     return("the student name is" + self.name +"and the age is"+str(self.age)) 

Auch in init sollten Sie "self" statt "s" als ersten Parameter übergeben

Bitte lesen Sie weiter https://docs.python.org/3/tutorial/classes.html

+1

Parens sind für' return' Anweisungen unnötig Die Verwendung von 'str.format()' ist wahrscheinlich ein besserer Ansatz: 'return 'der Name des Schülers ist {0} und das Alter ist {0a.age}". format (self) ' – AChampion

+0

danke Sir, habe die Antwort bekommen Vielen Dank für Ihre Hilfe. –

Verwandte Themen