什么是对象?
- 对象:独立性、功能性、交互性
- 万物皆对象,均继承于Object类
- OOP:面向对象编程,本质含义在于复用代码,在较大规模或复杂项目中有用,提高写作产量
- 面向对象和面向过程的对比
- 编程实例
面向过程的程序解决方法:
面向对象:
- 面向对象的3个特征:封装、继承、多态
- 封装:属性和方法的抽象
- 继承:高级复用,几乎完全使用原有类属性与方法
- 多态:针对方法和方法灵活性的抽象;同一个名字的方法可以处理多种数据类型、多个不同参数
面向对象术语
- 类Class 对象 Object
类是一种抽象,一般不使用类进行运算,通过类来生成对象进行运算。对象在面向对象编程中,相当于程序的变量。实例化就是从类到对象的过程。对象是根据模板【类】生成的实际的功能。
属性:存储数据的变量
方法:操作数据的函数
对象:类对象、实例对象
- 类对象、实例对象
- 其他术语
面向对象的练习实例
- 如何用Class对象解决该问题?
class
- OOP更易于理解
类的构建
- 类,class。
类定义不限位置,可以包含在分支或其他丛书语句块中,执行时存在即可
其中,大写单词组合指首字母大写的组合。<类名>.__doc__访问类描述,doc前面为两个下划线。
- 类对象:默认在类定义完成后,默认生成类对象
- 实例对象:类最常用的使用方式
- 类的构造函数:
1) 用于从类创建实例对象的过程
2)为实例对象提供了参数输入过程
3) 为实例对象的属性定义和赋值提供支持
- 属性和方法是类对外交互的方式,是接口
- 类对象全局只有一个,实例对象可生成多个
- 使用python解释器预定义的__init__()作为构造函数,可以为python对象提供参数。可以接收参数并完成初始操作。其中,self只在类内部使用。
- 类属性:类对象的属性,所有实例对象所共享
- 实例属性:实例对象的属性,由各实例对象所独享
- 访问类属性,不管在类内还是类外,使用<类的名字>.<属性名>访问;访问实例属性,在类内部,使用self.<属性名>访问;在类外部,用<对象名>.<属性名>访问
类的方法
- 方法是类内部定义的函数
- 实例方法:最常用,形式如下,使用<对象名>.<方法名>访问实例方法。实例方法中,第一个参数必须是self
- demo1:计算某人的幸运数字
访问实例属性,在类内部,使用self.<属性名>访问;在类外部,用<对象名>.<属性名>访问。实例方法在类外部访问,采用<对象名>.<方法名>。
'''
- 类方法:与类对象相关的函数,由所有实例对象共享
采用<类名>.<方法名>(<参数列表>)或者<对象名>.<方法名>(<参数列表>)方式访问
至少包含一个参数,表示类对象本身,建议用cls
必须包含@classmethod作为装饰器
只能操作类属性和其他类方法,不能操作实例属性和实例方法
- demo2
'''
- 自由方法:定义在类命名空间中的普通函数,采用<类名>.<方法>(<参数列表>)方式访问,类名代表着对应的命名空间。
自由方法可以没有参数
只能操作类属性和类方法,不能操作实例属性和实例方法
只能使用<类名>访问
- demo3:
'''
- 静态方法:能够被所有实例对象共享的类中普通函数,仅需要增加装饰器@staticmethod【属于自由方法】
可以用<类名/对象名>.<方法>(<参数列表>)
仍然只能操作类属性和其他类方法,不能操作实例属性和实例方法【同样没有引入self参数】
- demo4:
'''
- 保留方法:由双下划线开始、结束的方法,保留使用
# 其中,__len__()方法对应len()函数操作可理解为:
学习链接:
Python学习嵩天老师 python面向对象精讲 侵删_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com非常感谢up主分享给大家一起学习,共同进步。