zoukankan      html  css  js  c++  java
  • 面向对象

    声明类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)

    结果

  • 相关阅读:
    CSRF小结
    代码注入小结
    文件上传漏洞小结
    解决Burpsuite_pro_v1.6破解版https证书导入问题
    Java HTTP 组件库选型看这篇就够了
    趣图:我正在演示一个功能,但没有达到预期效果
    阅读源码的利器——Intellij-IDEA-Replace-in-Path-使用技巧
    分享一些好用的 Chrome 插件!
    趣图:程序员发量的变化过程
    Spring循环依赖的三种方式
  • 原文地址:https://www.cnblogs.com/jcb9426986/p/10828049.html
Copyright © 2011-2022 走看看