학생 DB에 다단계 상속을 적용하려고합니다. 내가 가지고있는 name
, rollno
, age
, marks
, total
와 average
. 나는 출력이
Abc 1 21
Abc 1 21 98 79 88
Abc 1 21 98 79 88 255 85
내가 직면 한 오류는 str과 int를 연결할 수 없다는 것입니다. 문제는 str의 이름과 int의 나머지 부분 때문이라는 것을 이해할 수 있습니다. 누구든지 나를 도울 수 있습니까?
내 코드는 다음과 같습니다.
import sys
class Person:
def __init__(self, name,rollno,age):
self.name = name
self.rollno = rollno
self.age=age
def Name(self):
return self.name + ", " + self.rollno + ", "+ self.age
class Employee(Person):
def __init__(self, name,rollno,age,m1,m2,m3):
Person.__init__(self,name,rollno,age)
self.m1 = m1
self.m2 = m2
self.m3 = m3
def Getemployee(self):
return self.name +"," + self.rollno +" ,"+ self.age +" ,"+ self.m1 +" ,"+ self.m2 +", "+ self.m3
class EmployeeDetails(Employee):
def __init__(self, name,rollno,age,m1,m2,m3,total):
Employee.__init__(self,name,rollno,age,m1,m2,m3)
self.total=self.m1+self.m2+self.m3
def empl(self):
return self.name +" ,"+ self.rollno +" ,"+ self.age +", "+ self.m1 +", "+ self.m2 +" ,"+ self.m3 +" ,"+ self.total
def main():
try:
n=int(raw_input("Enter the number of employees:"))
for i in range(n):
name =raw_input("enter the name:")
rollno =raw_input("enter the rollno:")
age =raw_input("enter the age:")
m1 =raw_input("enter m1:")
m2 =raw_input("enter m2:")
m3 =raw_input("enter m3:")
total =self.m1+self.m2+self.m3
p = Person(name,rollno,age)
e = Employee(name,rollno,age,m1,m2,m3)
s= EmployeeDetails(name,rollno,age,m1,m2,m3,total)
print p.Name()
print e.Getemployee()
print s.empl()
except ValueError :
print "value in error"
if __name__=='__main__':
main()
main ()은 어떤 클래스의 메소드도 아닙니다. 그래서 self
거기에 정의 되어 있지 않습니다. 그래서, 변경 total =self.m1+self.m2+self.m3
에 total =m1+m2+m3
. 또한 모든 사용자 입력은 n을 제외하고 raw_input ()이있는 문자열로 정의되었습니다. 따라서 연결은 잘 작동합니다.
편집 : 의견에 답하려면 유형 변환 만하면됩니다. 더 잘 해보세요! 또한,이 변경 self.total=str(int(self.m1)+int(self.m2)+int(self.m3))
의 __init__
방법 EmployeeDetails
필요한 결과를 얻을 클래스입니다.
추신 : 당신은 목적 으로이 게시물 을 읽고 싶을 것입니다 self
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다