zoukankan      html  css  js  c++  java
  • 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更简洁些。。。


  • 相关阅读:
    博客园添加访问人数统计【转】
    Android环境下通过C框架层控制WIFI【转】
    用户态文件系统fuse学习【转】
    linux内核 RCU机制详解【转】
    使用diff制作补丁【学习笔记】
    OAuth2授权原理
    Code! MVC 5 App with Facebook, Twitter, LinkedIn and Google OAuth2 Sign-on (C#)
    lock关键字只不过是C#提供的语法糖
    关于OATUH中的AUTHRAZITON CODE和TOKEN的关系,实际上就是这么回事
    SQL Server 索引设计指南
  • 原文地址:https://www.cnblogs.com/amengduo/p/9586389.html
Copyright © 2011-2022 走看看