Python中类的继承代码实例

Python中类的继承代码实例

这篇文章主要介绍了Python中类的继承代码实例,本文直接给出代码及运行效果,需要的朋友可以参考下

相对于C 的继承编写,Python更简洁,而且效率也是很高的,下面编写一个简单Python的继承例子。

代码如下:
#!/usr/bin/python   
#filename: pyclass.py   
  
class Member:   
        def __init__(self, name, age):   
                self.name = name   
                self.age = age   
                print 'Member init:%s' % self.name   
        def tell(self):   
                print 'Name:%s,Age:%d' % (self.name, self.age),   
  
class Student(Member):   
        def __init__(self, name, age, marks):   
                Member.__init__(self, name, age)   
                self.marks = marks   
                print 'Student init:%s' % self.name   
        def tell(self):   
                Member.tell(self)   
                print 'Marks:%d' % self.marks   
  
class Teacher(Member):   
        def __init__(self, name, age, salary):   
                Member.__init__(self, name, age)   
                self.salary = 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 members:   
        mem.tell()  

运行效果:

复制代码代码如下:

[root@localhost hhl]# python pyclass.py    
Member init:Tom   
Student init:Tom   
Member init:Mrs.Huang   
Teacher init:Mrs.Huang   
Name:Tom,Age:20 Marks:80   
Name:Mrs.Huang,Age:30 Salary:50000  

我们同样编写同样效果的C 例子:

代码如下:
//filename: class.cpp   
#include    
#include    
using namespace std;   
  
class Member   
  
public:   
    Member(char *n, int a);   
    void tell();   
private:   
    char name[10];   
    int age;   
};   
  
Member::Member(char *n, int a)   
  
    memcpy(name, n, sizeof(name));   
    age = a;   
    cout<<"Member init:"<<name<<endl;   
  
  
void Member::tell()   
  
    cout<<"Name:"<<name<<","<<"Age:"<<age<<",";   
  
  
class Student:public Member   
  
public:   
    Student(char *n, int a, int m);   
    void tell_s();   
private:   
    int marks;   
};   
  
Student::Student(char *n, int a, int m):Member(n, a)   
  
    marks = m;   
    cout<<"Student init:"<<n<<endl;   
  
  
void Student::tell_s()   
  
    Member::tell();   
    cout<<"Marks:"<<marks<<endl;   
  
  
class Teacher:public Member   
  
public:   
    Teacher(char *n, int a, int s);   
    void tell_t();   
private:   
    int salary;   
};   
  
Teacher::Teacher(char *n, int a, int s):Member(n, a)   
  
    salary = s;   
    cout<<"Teacher init:"<<n<<endl;   
  
  
void Teacher::tell_t()   
  
    Member::tell();   
    cout<<"Salary:"<<salary<<endl;   
  
  
int main(void)   
  
    Student s("Tom", 20, 80);   
    Teacher t("Mrs.Huang", 30, 50000);   
       
    s.tell_s();   
    t.tell_t();   
  
    return 0;   
 

运行效果:

代码如下:
[root@localhost hhl]# ./class    
Member init:Tom   
Student init:Tom   
Member init:Mrs.Huang   
Teacher init:Mrs.Huang   
Name:Tom,Age:20,Marks:80   
Name:Mrs.Huang,Age:30,Salary:50000  

这两者的运行效果是一样的,但是python更简洁些。。。


原文地址:https://www.cnblogs.com/amengduo/p/9586389.html