• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python中类的继承代码实例

python 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

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

<br />#!/usr/bin/python   <br />#filename: pyclass.py   <br />  <br />class Member:   <br />        def __init__(self, name, age):   <br />                self.name = name   <br />                self.age = age   <br />                print 'Member init:%s' % self.name   <br />        def tell(self):   <br />                print 'Name:%s,Age:%d' % (self.name, self.age),   <br />  <br />class Student(Member):   <br />        def __init__(sel<mark style="color:transparent">本文来源gaodaimacom搞#^代%!码网@</mark>f, name, age, marks):   <br />                Member.__init__(self, name, age)   <br />                self.marks = marks   <br />                print 'Student init:%s' % self.name   <br />        def tell(self):   <br />                Member.tell(self)   <br />                print 'Marks:%d' % self.marks   <br />  <br />class Teacher(Member):   <br />        def __init__(self, name, age, salary):   <br />                Member.__init__(self, name, age)   <br />                self.salary = salary   <br />                print 'Teacher init:%s' % self.name   <br />        def tell(self):   <br />                Member.tell(self)   <br />                print 'Salary:%d' % self.salary   <br />  <br />s = Student('Tom', 20, 80)   <br />t = Teacher('Mrs.Huang', 30, 50000)   <br />  <br />members = [s, t]   <br />for mem in members:   <br />        mem.tell()  <br />

运行效果:

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

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

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

运行效果:

<br />[root@localhost hhl]# ./class    <br />Member init:Tom   <br />Student init:Tom   <br />Member init:Mrs.Huang   <br />Teacher init:Mrs.Huang   <br />Name:Tom,Age:20,Marks:80   <br />Name:Mrs.Huang,Age:30,Salary:50000  <br />

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python中类的继承代码实例
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址