(七)面向对象基础(一)
程序员文章站
2022-03-26 15:11:16
面向对象基础 面向过程:根据业务逻辑从上到下写代码 面向对象:将数据与函数绑定到一起,分类进行封装,每个程序员只要负责分配给自己的分类,这样能够更快速的开发程序,减少了重复代码 面向对象基于面向过程 面向过程:根据业务逻辑从上到下写代码 面向对象:将数据与函数绑定到一起,分类进行封装,每个程序员只要 ......
面向对象基础
-
面向过程:根据业务逻辑从上到下写代码
-
面向对象:将数据与函数绑定到一起,分类进行封装,每个程序员只要负责分配给自己的分类,这样能够更快速的开发程序,减少了重复代码
-
面向对象基于面向过程
面向对象(object-oriented ;简称: OO) 至今还没有统一的概念 我这里把它定义为: 按人们 认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设 计、实现软件的办法。
面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法。 这种方法把软件系统中相近相似的操作逻辑和操作 应用数据、状态,以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。
类
对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念——类
类的构成:类名、属性、方法
-
类的名称:类名(安装大驼峰命名法)
-
类的属性:一组数据
-
类的方法:允许对进行操作的方法 (行为) {附:方法与函数的区别:方法的第一个形参必须是self}
一个类可以产生多个对象,对象间彼此独立,各自独立额度使用功能
1、class Hero(): # 经典类 2、class Hero(object): # 新式类定义形式 def info(self): print("英雄各有见,何必问出处。")
# 查看类的文档说明,也就是类的注释
print(Hero.__doc__)
-
定义类时有2种形式:新式类和经典类(python3只有新式类)
-
object 是Python 里所有类的最*父类;
-
info 是一个实例方法,第一个参数一般是self,表示实例对象本身
-
解释器会把调用方法的对象作为第一个实参来传递
魔法方法
在适当的事迹会自动运行的方法
①方法名两边各有两个下划线②名字都是由官方规定
# Python 的类里提供的,两个下划线开始,两个下划线结束的方法,就是魔法方法 # 如果类面没有写__init__方法,Python会自动创建,但是不执行任何操作, # 如果为了能够在完成自己想要的功能,可以自己定义__init__方法, # 所以一个类里无论自己是否编写__init__方法 一定有__init__方法。
__init__(self)方法:
作用:初始化对象的共有属性
创建对象之后会自动自行,不需要手动调用
__init__可以在self之后接收需要的参数(创建对象时传递的实参,回传递到方法的形参)
__str__(self)方法: 附:括号里只能接收self形参
作用:打印对象的描述信息
打印对象时会自动执行
__str__(self)方法必须要有返回值(return),且为字符串
附:当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了__str__(self)方法,那么就会打印从在这个方法中 return 的数据
__del__(self)方法:
作用:验证对象是否被销毁,释放资源
当对象被销毁的时候执行
__new__(cls)方法:
作用:当创建对象时执行,用于控制当前类是否能创建新对象
__new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供
要创建新对象,就需要调用object的__new__方法来处理
创建的新对象必须要return返回
创建对象的参数不仅会给__init__,也会传递给__new__方法
{总结}
-
类的外面最好时通过方法来访问属性,而不是直接访问
-
私有属性:在属性名前写两个下划线,这个属性只能在定义的类使用
-
类的里面可以访问私有属性,外面不能访问
附:eval:可以把字符串当作代码来执行
repr:可以获取到字符串的定义格式
dir:能够查看一个对象的所有属性
推荐阅读
-
C#面向对象编程基础概念汇总
-
重温面向对象核心 下 : 你一定能看懂的委托和事件
-
PHP学习记录之面向对象(Object-oriented programming,OOP)基础【类、对象、继承等】
-
PHP学习记录之面向对象(Object-oriented programming,OOP)基础【接口、抽象类、静态方法等】
-
java面向对象基础_final详细介绍
-
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
-
python基础教程之面向对象的一些概念
-
基于Oracle的面向对象技术入门基础简析开发者网络Oracle
-
Python面向对象实现一个对象调用另一个对象操作示例
-
python编程之 re模块和面向对象基础