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

    面向对象的概念:

    类:    描述具有相同的属性和方法的对象的集合  理解:类是一个变量和函数的集合
    对象:是类的实例,通过类定义的数据结构实例
               三大特性:继承、多态、封装
    继承:子类继父类
    多态:由不同的类实例化得到的对象,调用一个方法,执行的逻辑不同
               例如:两个不同字符串调用同一个函数len()
    封装:封装的目的是增强安全性和简化编程

    创建一个类:

    类名叫做 ClassA ,类里面的变量我们称之为属性,
    那么就是这个类里面有3个属性,分别是 a ,b和c
    除此之外,类里面还有3个类方法 fun1(),fun2()和fun3()

    调用类属性和类方法:

     类方法如何调用类属性:

    @classmethod: class 就是类,method 就是方法
    类方法,想要调用类属性,需要以下步骤:
    1. 在方法上面,用 @classmethod 声明该方法是类方法。只有声明了是类方法,才能使用类属性
    2. 类方法想要使用类属性,在第一个参数中,需要写上 cls , cls 是 class 的缩写,其实意思就是把这个类作为参数,传给自己,这样就可以使用类属性了
    3. 类属性的使用方式就是 cls.变量名
    无论是 @classmethod 还是 cls ,都是不能省去的

    类方法传参:

    类和对象的关系:
           类是对象的模板,先有类,才能制作出对象
           类就相对于工厂里面的模具,对象就是根据模具制造出来的产品
           从模具变成产品的过程,我们就称为类的实例化
           类实例化之后,就变成对象了。也就是相当于例子中的产品

    类的实例化

    类方法里面没有了 @classmethod 声明了,不用声明他是类方法
    类方法里面的参数 cls 改为 self
    类的使用,变成了先通过 实例名 = 类() 的方式实例化对象,为类创建一个实例,然后再使用 实例名.函数() 的方式调用对应的方法 ,使用 实例名.变量名 的方法调用类的属性

    类方法的参数为什么 cls 改为 self ?
    其实这并不是说一定要写这个,你改为什么字母,什么名字都可以

    使用 cls 和 self 是我们的编程习惯,这也是我们的编程规范
    因为 cls 是 class 的缩写,代表这类 , 而 self 代表这对象的意思
    所以啊,这里我们实例化对象的时候,就使用 self
    而且 self 是所有类方法位于首位、默认的特殊参数。
    当你把类实例化之后,里面的属性和方法,就不叫类属性和类方法了,改为叫实例属性和实例方法,也可以叫对象属性和对象方法
    因为一个类是可以创造出多个实例对象出来的

    a = ClassA()

    b = ClassA()

    初始化函数:
    __init__(self) 函数就是初始化函数,也叫构造函数
    初始化函数的写法是固定的格式:中间是 init,意思是初始化,然后前后都要有【两个下划线】,然后 __init__() 的括号中,第一个参数一定要写上 self,不然会报错
    构造函数(初始化函数)格式如下:
    def __init__(self,[...):

    既然在创建的时候,会调用构造函数,那么理所当然,这个当一个类销毁的时候,就会调用析构函数。
    析构函数语法如下:
    def __del__(self,[...):

    类的继承
    调用父类的方法:

    父类方法重写

     多态

     参考:https://github.com/TwoWater/Python

  • 相关阅读:
    laravel 服务提供者
    乐观锁和悲观锁
    MySQL索引原理及慢查询优化
    Laravel Session保存机制和terminate中间件
    laravel session踩坑
    理解 JavaScript 的 async/await(转)
    知识点
    js异步
    Office使用笔记
    YUM常用命令
  • 原文地址:https://www.cnblogs.com/yu121/p/13323606.html
Copyright © 2011-2022 走看看