• 面向对象


    声明类class

    例如

    class dog:       #声明一个类
        def __init__(self,*d):#类名()自动执行,初始化方法,self是对象,必须传的参数;*d可以换为对应个数的形参
            self.name=d[0]
        def work(self,n):#
            print('%s go %s'%(self.name,n))
    dog1=dog('wb',124,12)  #实例化,得到一个对象
    dog1.work(5)      #dog.work(self,5)  调用类中的方法
    print(dog1.name)

    继承

    #父类中没有的属性、方法就是派生属性、方法
    #子类中有的方法就用子类,没有就去父类找,也没有就错,父类、子类都有就用子类的,或者父类.方法名(self)调用
    #新式类,继承object类的才是新式类 广度优先
    #经典类 深度优先
    #多继承中,子类的对象调用一个方法,默认是就近原则,顺序是
    #新式类 广度优先
    #经典类 深度优先
    #Python3中只有新式类
    #super的本质:不是单纯的找父类 而是根据调用者的节点位置的广度优先顺序来的


    class Animal:    #父类
        def __init__(self,name,agger,hp):
            self.name=name
            self.agger=agger
            self.hp=hp
        def eat(self):
            self.hp+=100
    class Person(Animal):   #子类
        def __init__(self,name,agger,hp,sex):
            Animal.__init__(self,name,agger,hp)
            self.sex=sex    #派生属性
            self.money=0    #派生属性
        def bit(self,Dog):  #派生方法
            Dog.hp-=self.agger
    class Dog(Animal):    #子类
        def __init__(self,name,agger,hp,kind):
            Animal.__init__(self,name,agger,hp)
            self.kind=kind   #派生属性
        def bite(self,Persion):
            Persion.hp-=Dog.agger
    jin=Dog('',233,456,"teddy")
    print(jin.name)
    jin.eat()
    print(jin.hp)

    结果

  • 相关阅读:
    Docker安装
    Mysql 安全登陆工具 mysql_config_editor
    位图索引对于DML操作的影响
    删除Oracle Online Redo 测试
    16 Managing Undo
    Linux 不杀进程的情况下,如何释放磁盘资源
    SFTP 服务搭建
    8. DBNEWID 工具(使用nid命令修改db name及dbid)
    Null 值对索引排序的影响案例一则
    opensshd 源码升级
  • 原文地址:https://www.cnblogs.com/jcb9426986/p/10828049.html
Copyright © 2020-2023  润新知