zoukankan      html  css  js  c++  java
  • Python自学随笔(二)面向对象

      面向对象的特征:

      封装、继承、多态。

      面向对象的实现:

      创建类,实现封装:

        创建类,定义类方法、类属性。

    class anmil():#创建类
        def huxi(self):
            return '呼吸'
        def jiao(self):
            return '叫声'

      继承类,实现多态:

        被继承的类称之为父类,继承者被称之为子类,子类可以用父类的属性和方法;子类的属性各有不同,称之为多态。

    class dog(anmil):#继承类
        def jiao(self):#重写父类方法
            return ''
        def do(self):
            return '遛狗'
    
    class man(anmil):#继承animal类,实现多态
        def jiao(self):
            return ''
        def do(self):
            return '散步'

      实例化对象,面对对象的体现:

        将类实例化,建立实例化对象。

    damao = dog()#实例化对象
    
    print(damao.huxi())#调用父类方法
    print(damao.jiao())#调用子类方法
    
    xiaoming = man()
    
    print(xiaoming.jiao())
    print(xiaoming.do())

      

      self解析:Python中就规定好,函数的第一个参数,就必须是实例对象本身,并且把其名字写为self。

      

       staticmethod和classmethod装饰器:

        classmethod是用来指定一个类的方法为类方法,没有此参数指定的类的方法为实例方法;使用@classmethod修饰的方法可以使用类变量,但是不能使用成员变量。

        staticmethod 将一个方法变为静态方法,不能使用可以变化的类变量和实例变量。

        类变量和成员变量的区别如下:

    hisname = '王大'
    class worker(hisname):
        job = 'worker'#job是类变量
        def __init__(self,name):
            self.name = hisname#name是成员变量
  • 相关阅读:
    Generator函数执行器-co函数库源码解析
    前端解读Webview
    javascript设计模式详解之策略模式
    javascript设计模式详解之命令模式
    【VBA】标准Sub/Function定义,带ScreenUpdating、On Error GoTo
    【VBA】全局数组定义
    【VBA】全局常量定义
    调试Java代码(Eclipse)汇总
    为Eclipse添加反编译插件,更好的调试
    Eclipse图标含义
  • 原文地址:https://www.cnblogs.com/20glym/p/13207630.html
Copyright © 2011-2022 走看看