zoukankan      html  css  js  c++  java
  • python学习之面向对象(下)

    该篇主要是针对面向对象的细讲,包括类的多重继承,方法的重写,析构函数,回收机制进行讲解

    #该类主要是讲述python面象对象的一些特征,包括继承,方法的重写,多态,垃圾回收

    class person(object):
        name = ''
        age = ''

        def __init__(self,name,age, **kwargs):
            self.name = name
            self.age = age
            return super().__init__(**kwargs)
        
        def dosomething(self):
            print("my name is {0:} and age is {1}".format(self.name,self.age))

    #__del__方法为析构函数
        def __del__(self):
          class_name = self.__class__.__name__
          print(class_name, "destroyed")



    class Student(person):

        bookName = ""

        def __init__(self, book, **kwargs):
            self.bookName = book
            return super().__init__(**kwargs)

        def dosomething(self):
            print("my name is {0:} and age is {1} and learning {2}".format(self.name,self.age,self.bookName))


    class company:

        companyName = ""

        def __init__(self,company, **kwargs):
            self.companyName = company
            return super().__init__(**kwargs)

        def work(self):
            print("I work in {0}".format(self.companyName))


    class employee(Student,company):

        #def __init__(self, **kwargs):
        #    return super().__init__(**kwargs)
        pass;


    if __name__ == "__main__":

        per = person(name='Li li',age=25)
        per.dosomething()
        
        student = Student(name="ddd",age=12,book="fdfsd")
        student.dosomething()

        jack = employee(name="airvens",age=12,book="computer",company="facebook")
        jack.dosomething()
        jack.work()

        #del student回使person调用回收方法
        del per;
        del student;
        del jack;

    运行结果:

    说明:

    在python2.x版本中,对于__init__函数中初始化成员时有所不同

    3.x 版本中的写法: super().__init__(name, age)

    2.x 版本中的写法
    super(class,self).__init__(name,age)
  • 相关阅读:
    BZOJ4779: [Usaco2017 Open]Bovine Genomics
    USACO比赛题泛刷
    BZOJ1977: [BeiJing2010组队]次小生成树 Tree
    LOJ #10132. 「一本通 4.4 例 3」异象石
    $O(n+log(mod))$求乘法逆元的方法
    BZOJ2226: [Spoj 5971] LCMSum
    数据库 | Redis 缓存雪崩解决方案
    中间件 | 微服务架构
    数据库 | SQL 诊断优化套路包,套路用的对,速度升百倍
    数据库 | SQL语法优化方法及实例详解
  • 原文地址:https://www.cnblogs.com/airven/p/4970569.html
Copyright © 2011-2022 走看看