源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Python中类的继承代码实例

  • 时间:2022-01-20 02:13 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Python中类的继承代码实例
相对于C++的继承编写,Python更简洁,而且效率也是很高的,下面编写一个简单Python的继承例子。
[u]复制代码[/u] 代码如下:
#!/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() 
运行效果:
[u]复制代码[/u] 代码如下:
[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++例子:
[u]复制代码[/u] 代码如下:
//filename: class.cpp   #include <string.h>   #include <iostream>   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;   } 
运行效果:
[u]复制代码[/u] 代码如下:
[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更简洁些。。。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部