• 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)
  • 相关阅读:
    在 electron-vue 中的 Windows 下的路径问题,path.resolve 替换为 path.posix.join 。
    NLTK数据包下载频繁报错——解决方法
    常用正则表达式匹配
    NLTK的安装与简单测试
    Scrapy模块使用出错,出现builtins.ImportError: DLL load failed: 找不到指定的程序
    正则表达式手册
    数据分布vs聚类-数据预处理技巧-对数变换
    Python机器学习入门(1)之导学+无监督学习
    Pygame游戏开发入门(1)-开发框架
    Python-文件和数据格式化
  • 原文地址:https://www.cnblogs.com/airven/p/4970569.html
Copyright © 2020-2023  润新知