中国史之【寒浞夺政】:
寒浞(zhuo),原为后羿之相,后来杀死后羿,夺取有穷氏政权,随后又消灭了夏王相,使自太康失国以来分裂了54年的天下重新统一。
-来源:全历史APP
今天讲python的面向对象编程。有需要的也可以直接去我的github查看全部笔记:
/JackKoLing/python_notes_with_ten_days
俗话说:“好记性不如烂笔头”,多写写多记记,总不会错。多一些不为什么的坚持,少一些功利主义的追求。对于环境的配置,可以参考以下两篇:
win10版 @小保,公众号:CV之道
【深度学习环境配置】手把手实战配置深度学习环境(win10版)Linux版 @小保,公众号:CV之道
【深度学习环境配置】手把手实战配置深度学习环境(Ubuntu20.04版)
1 面向对象编程(OOP)
程序 = 算法(指令)+ 数据,代码可以选择以指令为核心或以数据为核心进行编写两种范型:
面向过程编程:以指令为核心,程序具有一系列线性步骤,阐述算法的步骤,主体思想是代码作用于数据面向对象编程(OOP):以数据为核心,围绕数据及为数据严格定义的接口来组织程序,用数据控制对代码的访问
2 面向对象的核心概念
(1)所有编程语言最终目的都是提供一种“抽象”方法
在机器模型(“解空间”或“方案空间”)与实际解决的问题模型(“问题空间”)之间,程序员必须建立一种联系面向过程:程序 = 算法 + 数据结构面向对象:将问题空间中的元素以及它们在解空间中的表示物抽象为对象,并允许通过问题来描述问题而不是方案。可以把实例想象成一种新型变量,它保存着数据,但可以对自身的数据执行操作
l1 = [1, 2, 3] # 这就是一个列表实例,可以想象成一种新型变量print(l1.pop()) # 可以对自身的数据执行操作,但这些操作必须是本来定义好的>>>3
(2)类型由状态集合(数据)和转换这些状态的操作集合(内置函数)组成
类抽象:
类:定义了被多个同一类型对象共享的结构和行为(数据和代码,即类的成员)类是抽象的,不能操作。只有实例成具体的对象,含有数据才能操作数据:成员变量或实例变量,也就是属性成员方法:简称方法,也就是函数,是操作变量的代码,用于定义如何使用成员变量。因此一个类的行为和接口是通过方法来定义的变量和方法分为:(1)私有,内部使用;(2)公共:外部可见
3 面向对象的程序设计方法
所有东西都是对象程序是一大堆对象的组合。通过消息(调用请求)传递,各对象知道自己该做什么每个对象都有自己的存储空间,并可容纳其他对象。通过封装现有对象,可以制作成新型对象每个对象(类的实例)都属于某一类型。类的一个重要特性为“能发什么样的消息给它”,即内置接口是限定的同一个类的所有对象都能接受相同的消息,因为方法是类内定义的4 类间关系
依赖(“uses-a”):一个类的方法操纵另一个类的对象聚合(“has-a”):类A的对象包含类B的对象,如l1=[‘a’,‘b’]这就是列表类对象包含字符串类的对象继承(“is-a”):描述特殊与一般关系,如汽车是车5 面向对象编程的三个原则
(1)封装(Encapsulation)
隐藏实现方案细节将代码及处理的数据绑定在一起的一种编程机制,用于保证程序和数据不受外部干扰且不会被误用比如:sort()就是一种封装了的排序,你无须深入了解具体怎么实现排序的,只需要给数据就行又比如:你要开车,不需要去了解引擎怎么制作,只需要插入钥匙,掌握开车的技巧
(2)继承(Inheritance)
一个对象获得另一个对象属性的过程;用于实现按层分类的概念一个深度继承的子类继承了类层次中它的每个祖先的所有属性超类、基类、父类都是一个概念子类、派生类都是一个概念比如:动物分为哺乳动物和爬行动物,哺乳动物又分为犬科动物和猫科动物。那么动物能呼吸的属性,犬科动物也有
(3)多态(Polymorphism)
允许一个接口被多个通用的类动作使用的特性,具体使用哪个动作与应用场合相关“一个接口,多个方法”,用于为一组相关的动作设计一个通用的接口,以降低程序复杂性
# 这就是“一个接口,多个方法”def plus(x, y):print(x+y)plus('a', 'b')plus([1, 2, 3], ['a', 'b', 'c'])>>>ab[1, 2, 3, 'a', 'b', 'c']
【声明】:学习笔记基于互联网上各种学习资源的个人整理。
以上是本期内容,下期介绍python的类和实例。
我叫小保,一名计算机视觉爱好者、学习者、追随者,欢迎关注我一起学习。