【零基础高效率学Python】第六天面向对象-创新互联
面向对象在编程的时候尽可能去模拟现实世界,其中任何一个操作都需要一个实体来完成,实体就是动作的支配者,没有实体没有动作发生。
成都创新互联公司主要从事成都网站建设、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务长葛,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792二、面向对象分析
第一步:分析那些动作由那些实体发出的。
第二步:定义这些实体,为其添加相应的属性及功能。
- 属性:就是实体固有的信息特征,本质就是以前的变量
- 功能:实体可以完成的动作,本质就是以前的函数或方法
第三步:让实体去执行相应的功能或动作。
三、面向过程向面向对象的思想迁移1、以前面向过程编写代码:
- 首先考虑实现什么功能,然后调用什么函数,最后按部就班的实现需求
2、以后面向对象编写代码:
首先考虑有什么样的实体去实现什么样的功能
然后分装实体的属性及功能
通过实体实现对应功能
1、面向过程与面向对象都可以实现模块化编程代买也可以重用,但是面向对象的模块化更深,数据更封闭更安全。
2、现象对象的思维方式更加贴近现实生活,更容易解决大型的复杂业务逻辑。
3、从前期开发角度来说,面向对象比面向过程更复杂,但从维护或扩展的角度来说,面向对象远比面向过程简单。
4、面向过程的代码执行效率更高。
五、面向对象的专业术语 (一)面向对象开发的三大流程面向对象分析->面向对象设计->面向对象编程
(二)类类是对现实世界一种模拟,在现实世界中任何一个实体都有一个类别
类就是具有相同或相似属性和动作的一组实体集合
1、概念:是一种抽象概念,对象是类实例化的结果。
2、对象分为2部分:
- 静态属性:客观存在,不可忽视,如:人的姓名、性别……
- 动态属性:行为,对象执行动作,如:人能跑步
对象使用属性保存数据,对象使用方法管理数据。
六、类的定义及使用 (一)面向对象开发的基本流程第一步:设计一个类
第二步:使用类名()方法创建对象,创建对象分成2步:
内存为对象分配空间
调用初始化方法_ _ init_ _ () 为对象初始化
1、经典类:
class 类名: """类的帮助信息""" 代码
2、新式类:
class 类名(): """类的帮助信息""" 代码
3、注意
类名遵循标识符命名规则(数字、字母、下划线组成,不能以数字开头)。
类名为方法名区分开,应使用驼峰命名法,类中每个单词的首字母大写,而不使用下划线。
对象名都应小写,单词之间使用下划线间隔。
4、类本质也是一个特殊的对象
python一切皆为对象,类是一个特殊的对象即类对象。
程序运行时,类会被加载的到内存中,类对象只有一份,可以创建出多个对象实例。
1、类的实例化就是把抽象的类具体实例化为现实世界的实体,即通过类得到对象。
2、分析:
定义完毕一个类之后是不会创建一个实例对象的,若类好比一个汽车的设计图纸,该图纸只能告诉你怎么去造车,但图纸本身不是一辆车,不能开走他,只能制作车
类本身什么都做不了,必须利用类得到一个实例化对象,利用对象实现功能
根据类创建出对象的过程称为实例化
3、格式:对象名 = 类名()
(四)类中self关键字作用:指向类实例对象本身,用于访问类汇总属性和方法,在方法调用时会自动传递实际参数self。
总结:类中self就是谁实例化了对象,则self就指向该对象,本质为对象的首地址,即代表对象本身。
(五)通过_ _ init_ _ ()方法进行初始化
python中_ _ xx_ _ () 方法称为魔术方法,是就有特殊功能的函数
类创建后,手动编写_ _ init_ _ () 方法,类似于java的构造方法,创建对象时会被自动调用,用于默认属性值的初始化,使用双下划线开头和结尾,是一种特殊的约定,旨在区分其它方法
_ _ init_ _ (self) 本身再带self参数,必须时第一个位置,指向对象本身
在开发时,如果需要在类中封装一个方法,该方法需要做到:
既不需要其它对象调用,会自动执行
用于打印一些提示、帮助信息等功能
格式:@staticmethod,写在类中方法之前,用于修饰类中的方法,使其可以不创建类实例的情况下直接执行调用
优点:执行效率高,不需要默认的self参数
概念:定义在类中且在函数体外部的变量称为类属性,类属性是所有对象的公共属性,在所有类的对象中共享。
PS:类属性变更,对象属性也会变化。
注意:类属性用于计数、控制、包含某个对象。
七、魔术方法 (一)python中_ _ xx _ _()函数称为魔术(魔法)方法,具有特殊功能 (二)_ _ str _ _() 方法当使用print()输出对象时,默认打印的是对象的内存地址
如果类中定义_ _ str_ _ ()方法,则若再次print()输出对象时会输出_ _ str_ _ ()方法return的结果
注意:类的内部定义_ _ str_ _ ()方法,其return的结果会返回一个字符串数据类型
(三)_ _ del_ _() 方法称为删除方法或者析构方法
注意:当删除对象时,python解释器会默认调用该方法
注意:_ _ del_ _() 方法主要用于删除对象后的后续操作,如:关闭文件、关闭数据库连接等。
八、面向对象的三大特征 (一)面向对象的三大特征--封装1、封装有2层含义
把主体的属性和方法卸载类里面的操作称为封装
class Person: # 封装属性 # 封装方法
封装可以为属性和方法添加私有权限
2、封装私有属性及私有方法
属性和方法分为两大类:
公有:无论在类内部还是类外部都可以对属性和方法进行操作
私有:不允许在类的外部对类内部的属性和方法进行操作
3、私有属性的访问限制
设置私有属性方法:在属性名或方法名前增加两个下划线_ _即可,例:self.__age = 18
4、私有属性或方法设置访问接口
如果需要在类外部访问私有属性或方法,需要通过定义的接口来实现
python中一般使用函数名为get_xx命名的接口函数来获取私有属性,使用set_xx来修改私有属性
注意:私有方法定义方式与私有属性一致,在方法名之前添加2个下划线即可
5、封装的意义
封装数据属性:明确区分内外,控制外部对隐藏的内部属性的操作,过滤掉异常数据
封装方法:降低程序复杂度
6、装饰器@property封装
作用:通过@property装饰器将一个方法转换为属性,从而实现调用方法时相当于调用属性,不需要园括号,代码更简洁
格式:@property
def 方法名(self):
方法体
继承:一个类从另一个类获得其成员的相关特性
派生:从一个已有的类中产生一个新的类,称为派生,继承与派生其实是从不同方向来描述相同的概念,本质一致
父类:也称为基类,被继承的类
子类:称为派生类或扩展类
扩展:在子类中增加一些自己特有的特性,称为扩展,只有继承没有扩展则继承无意义
单继承:一个类只能继承自另一个类,不能继承多个类,称为单继承
多继承:一个类同时继承了多个父类
(三)面向对象的三大特征--多态1、概念:多态是指一类事物有多重形态,是一种使用对象的方式,子类重写父类方法后,调用不同的子类对象的相同父类方法,可以产生不同的结果
2、特点
- 多态依赖于继承
- 子类方法必须重写父类方法
- 当调用一个公共方法时,传递的对象不同,返回结果不同
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站名称:【零基础高效率学Python】第六天面向对象-创新互联
文章转载:http://scyanting.com/article/poeij.html