【LSP】大话Python类语义

12100213   ·   发表于 15天前   ·   编程代码


  物以类聚,人以群分,就是相同特征的人和事物会自动聚集在一起,核心驱动点就是具有相同特征或相类似的特征,我们把具有相同特征或相似特征的事物放在一起,被称为分类,把分类依据的特征称为类属性

  计算机中分类的思想叫做面向对象,Python中把数据抽象成对象,通过对象或对象间的关系来描叙数据。

  我们把一些相似事物的共同特征通过一个方式描叙出来,也就是说,你是按什么标准对事物进行分类,相似点是什么,计算机把对相似事物的特征数据进行描叙称为类定义

计算机中类的三大特征
  1. 封装 对数据的可见性进行约束,分为公有public、私有private、非公有, 公有数据可以直接通过属性访问语法 obj.attr 直接访问,但是私有、非公有则通过方法进行访问,访问行为其实就是SQL中的增删改查,查称为读,增删改称为写,在Python中类的数据称为数据属性,类中定义的函数称为方法,方法是关联对象的函数

2. 继承 需要理清几个概念,父类、子类、基类、派生类,父类就是基类,子类就是派生类。继承是建立在类的基础上,子类完全继承父类的所有属性以及控制属性访问的方法。继承要理清差异共相同点,对依据对事物进行分类的特征要非常确定才能写计算机中的类,不然不是分类,分类的前提是公共特征,继承的前提是共性与差异,如果不理解共同特征你就无法分类,你不理解同一类的共性与差异你无法写出继承,继承强调的是公共特征,包括属性和方法

 3. 多态 同一个行为具有不同表现形式或形态的能力,计算机中最接近多态的是接口interface,接口定义相同行为,然后我们对接口行为的分类,就产生所谓的抽象基类,通过继承机制,然后子类重写方法从而实现多态,说白了就是同一个方法中有不同的实现,再说漏骨一点就是函数的名称相同,函数的形参相同,函数的返回值相同,但是函数体内的语句逻辑不一样,这个函数体不同被称为多态。多态是建立在继承的基础上然后对方法进行重写,其实能重写(又称为重载)的只有函数体,多态强调的是方法

 # 定义是可执行的语句,在被import语句导入或以main文件执行时,定义就会被执行
  # 类定义的执行,首先会在当前作用域引入一个用于存储类中属性的命名空间。然后把这个类命名空间封装成对象返回,并把这个类对象绑定到class关键字指定的名称,这个名称又被绑定到class关键子所在的命名空间
  # Name -> 类对象 > 类命名空间
  # 其实类定义中包含的一般是函数定义,函数定义的第一个参数其实时实例本身,通过实例本身就可以访问实例中的数据属性和方法

类对象
  # 支持两种操作:属性引用 和 实例化
  # 属性引用使用Python标准属性引用语法 obj.name
  # 实例化: 类的实例化,类似于函数调用,把括号里的参数传递给类的__init__方法,通过__init__方法为类的新实例初始化特定的属性,这个init方法又被称为工厂函数, 其他语言中的类通过new关键字创建。Python中通过函数调用传参的形式实现类的实例化

实例对象
  # 支持唯一的操作就是属性引用, 其实和普通的变量引用一样,只是多个归属前缀而已,通过方法对实例里的变量进行修改,实际上在函数封装过程的基础上再把数据和函数绑定起来

方法对象
  # 方法是从属某个对象的函数,类中的函数定义了类的实例所拥有的方法,也就是说对象的类型决定了对象支持的操作
  # 方法对比函数,函数定义在模块或函数中,方法定义在类定义中,方法的第一个参数固定时实例对象

类和实例变量
  # 实例变量是每个实例的唯一数据,而类变量是该类的所有实例共享的属性和方法
  # 相同属性名称出现在类和实例中,首先被找到的时实例属性

20 Reply   |  Until 15天前 | 152 View

3180386827
发表于 15天前

我回复一句你的就变成筑梦者

评论列表

  • 加载数据中...

编写评论内容

2670459508
发表于 15天前

[滑稽]我昨天凌晨变成优质作者了

评论列表

  • 加载数据中...

编写评论内容

py2815
发表于 15天前

你到底弄了多少

评论列表

  • 加载数据中...

编写评论内容

klmkq
发表于 15天前

一次性多回复几个帖子

评论列表

  • 加载数据中...

编写评论内容

yaunwandian
发表于 15天前

这样能快点[滑稽]

评论列表

  • 加载数据中...

编写评论内容

浪漫之初
发表于 15天前

你去回其他的呗[滑稽]

评论列表

  • 加载数据中...

编写评论内容

pole资源网
发表于 15天前

我直接跑路[滑稽]

评论列表

  • 加载数据中...

编写评论内容

1094525
发表于 15天前

啊这[滑稽]

评论列表

  • 加载数据中...

编写评论内容

221121
发表于 15天前

[滑稽]我要五开热帖

评论列表

  • 加载数据中...

编写评论内容

221121
发表于 15天前

我说的[滑稽]

评论列表

  • 加载数据中...

编写评论内容
LoginCan Publish Content