C++의 상속 작성과 비교하면 Python이 더 간결하고 효율적입니다. 다음은 간단한 Python 상속 예입니다.
class Member:
def __init__(self, name, age):
self.name = 이름
self.age = age
print 'Member init:%s' % self.name
def Tell(self):
print 'Name:%s,Age:%d' %(self.name , self.age),
class 학생(회원):
def __init__(self, 이름, 나이, 점수):
Member.__init__(self, 이름, 나이)
self.marks = mark
print 'Student init:%s' % self.name
def Tell(self):
멤버 .tell(self)
print 'Marks:%d' % self.marks
class 교사(회원):
def __init__(self, 이름, 나이, 급여 ):
Member.__init__(self, name, age)
self.salary = 급여
print 'Teacher init:%s' % self.name
def Tell(self):
Member.tell(self)
print 'Salary:%d' % self.salary
s = Student('Tom ', 20, 80)
t = Teacher('Mrs.Huang', 30, 50000)
members = [s, t]
for mem in member:
mem.tell()
실행 효과:
[root@localhost hhl]
멤버 init:Tom
학생 init :Tom
멤버 init:Mrs.Huang
선생님 init:Mrs.Huang
이름:Tom,나이:20 마크:80
이름: Mrs.Huang,나이:30 급여:50000
또한 동일한 효과를 갖는 C++ 예제를 작성합니다.
#include
#include < ;iostream> ;
사용하는 네임스페이스 std;
class Member
{
void Tell()
private:
문자 이름[10];
int age
Member::Member(char *n, int a)
{
memcpy(이름, n, sizeof(이름))
age = a
cout<<"회원 초기화:"< } void Member::tell() { cout } class Student:public Member { public: Student(char *n, int a, int m ); void tell_s(); 비공개: int 마크; }; 학생::Student(char *n, int a, int m):Member(n, a) { marks = m; cout<<"학생 초기화:"< } void Student::tell_s() { Member::tell(); cout } class Teacher:public Member { public: Teacher(char *n, int a, int s ); void tell_t(); 비공개: int 급여; }; 선생님::Teacher(char *n, int a, int s):Member(n, a) { 급여 = s; cout<<"교사 초기화:"< } void Teacher::tell_t() { Member::tell(); cout } int main(void) { Student s("Tom", 20, 80); 선생님 t("Mrs.Huang", 30, 50000); s.tell_s(); t.tell_t(); 0을 반환합니다. } 运行效果: [root@localhost hhl] 회원 init:Tom 학생 init:Tom 회원 초기화:Mrs.Huang 선생님 초기화:Mrs.Huang 이름:Tom,나이:20,마크:80 이름:Mrs.Huang ,나이:30,급여:50000 这两者的运行效果是一样的,但是python更简洁些。。 以上就是Python类与继承더 많은 정보를 얻으세요相关内容请关注PHP中文网(www.php.cn)!