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是成员变量
原文地址:https://www.cnblogs.com/20glym/p/13207630.html