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

Вам не хватает имени вашего класса, например. 'reg1 = EceA ('sam', 21)' и вам не хватает переменной 'instance' для' disp() '. Обратите внимание, что традиционно вызывать переменную 'instance'' self' (вы использовали 's' в' __init __() '. Это элементарные ошибки, я бы прочитал учебный материал для новичков. – AChampion

ответ

1

Вам нужно создать объект класса с параметрами:

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

Также вам необходимо пройти self параметра Я к функции disp() как:

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

Кроме того, в init вы должны пройти 'self' вместо 's' в качестве первого параметра

Пожалуйста, прочтите https://docs.python.org/3/tutorial/classes.html

+1

Parens не нужны для операторов' return' и использование 'str.format()', вероятно, лучший подход: 'return 'имя студента {0.name}, а возраст - {0.age}". format (self) ' – AChampion

+0

спасибо, сэр. большое спасибо за помощь. –