Python学习笔记七

面向对象编程

面向对象的特性如下:

  类:具有相同属性和方法的一类事物,成为类。

  对象:类的实例化后的结果,一个类可以实例化多个对象,每个对象也可以不同的属性。

  封装:在类中对数据的赋值,类里面包含着类的数据和方法。

  继承:一个类可以派生出子类,在父类定义的属性方法自动被子类继承。

  多态:一个类可以有多个子类,每个子类继承父类的属性和方法,但是对父类的方法做了不同的实现,这就是同一个事物表现出不同的形态。

       例子:

#定义类
class Dog:
    name='egon'   #静态属性
    def bule(self):     #定义一个方法
        print("%s 汪汪汪" %Dog.name)
f=Dog()   #把这个类实例化,相当于创建了一个对象
f.bule()  #调用类中的方法
结果:

C:\Users\yangjianbo\AppData\Local\Programs\Python\Python36\python.exe C:/Users/yangjianbo/PycharmProjects/untitled/第七课面向对象/dog.py
egon 汪汪汪

实例化

  调用类的时候,会在内存中打开一个空的空间,类会把传入的参数

__init__函数

  名称:构造函数

  作用:类的实例初始化

类变量

  作用:大家共用的属性,节省开销。

析构函数:在实例释放和销毁的时候,执行析构函数,通常做一些扫尾工作。

  def __del__(self):

私有方法

  在方法前面加__

私有属性

  在属性前面加__

继承

  先写一个父类:

  例子:

class Animal(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
class Person(Animal):
    def __init__(self,name,age,aggr):
        Animal.__init__(self,name,age)
        self.aggr=aggr
class Dog(Animal):
    def __init__(self, name, age, aggr):
        Animal.__init__(self,name,age)
        self.aggr = aggr
egg=Dog('egon',18,'bbbb')
print(egg.name)

多继承:

  

经典类:

class Jiaoshi:
    def __init__(self,name,age):
        self.name=name
        self.age=age
class Jiaoshou(Jiaoshi):
       def __init__(self,name,age,xingwei):
          Jiaoshi.__init__(self,name,age)   #经典类的写法
          self.xingwei=xingwei
b=Jiaoshou('yangjianbo',18,'sleep')

新式类:

class Jiaoshi(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
class Jiaoshou(Jiaoshi):
       def __init__(self,name,age,xingwei):
          super(Jiaoshou,self).__init__(name,age)   #新式类的写法
b=Jiaoshou('yangjianbo',18,'sleep')

    

    

  

  

一往无前虎山行,拨开云雾见光明
原文地址:https://www.cnblogs.com/yangjianbo/p/7749410.html