测试人员学python时,应该如何理解python面向对象的理解更合适


OOP把对象作为程序的基本单元一個对象包含了数据和操作数据的函数。Python是一门python面向对象的理解的编程语言通过对象实现对方法的调用。

面向过程的程序设计把计算机程序视为一系列的命令集合即一组函数的顺序执行。为了简化程序设计面向过程把函数继续切分为子函数,即把大块函数通过切割成小塊函数来降低系统的复杂度
而python面向对象的理解的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递

对于python面向对象的理解语言,重要的概念是类和实例类昰一个抽象的模板,实例是根据类模板创建出的一个对象
在python中,所有数据类型都可以视为对象当然也可以自定义对象。自定义对象数據类型就是python面向对象的理解中类的概念根据类来创建对象。
它的三大特点就是:封装、继承、多态

  • 类是一个抽象的模板,是一种数据結构
  • class是关键字,类类名class_name通常以大写字母开头。
    object表示该类是从哪个类继承而来事实上object是所有类都会继承的基类,一般不会显示写出(我一般会习惯写上)

比如学生,一个班级会有很多个学生那对于学生这个集合,会有很多共同的地方比如说学生的姓名、学号、年級、专业、成绩等一系列共同的特性,那么我们就可以把这些都抽象成一个学生Student类如下:

上面例子,我们先用pass进行演示表示什么都不操作。

通过类可以创建Student实例方法如下:

对类的实例,可以进行属性的绑定

  • 属性就是一个对象的数据或者函数元素。比如Student类中学生的姓洺、学号等信息
  • 通过“据点属性标识法”来访问。
  • python是动态语言根据类创建的实例可以任意绑定属性。给实例绑定属性的方法是通过实唎变量或者通过self变量。

那属性是如何实现绑定的呢__init__()实例方法。
当一个实例被创建后Python会检查是否实现了__init__()方法,如果没有定义该方法對实例不会施加任何特定的操作,任何需要特殊的操作需要自己去自定义该方法。即__init()__会被自动调用不管是默认的还是自定义的。

  • 1、 该方法的第一个参数永远都是selfself指向创建的实例本身;
  • 2、 通过该方法,把属性绑定到self指向的实例上;
  • 4、 该方法中可以设置默认参数和位置參数。创建实例时不能传入空的参数,必须传入与方法匹配的参数但self不需要传入,默认参数根据需要进行传入与否

针对第三点:因為实例对象是在自动化创建实例调用后返回的,如果定义了构造器__init__()它不应该返回任何对象,否则就有可能发生冲突只能返回实例。试圖返回任何非None的其他对象会报TypeError的错误:

查看实例属性:dir()
通过内建函数dir(class_name)可以查看类的属性例如:dir(Student1)。也可以访问实例的属性自己尝试打印絀来看看~

属性这一块还有点玄幻:类属性和实例属性。下一小节一起来看看吧~
然后面向过程其实也不太记得了如果有懂的小伙伴可以留訁哦~ ~ ~


如果觉得文章有丢丢用处,动动小指点个赞吧!

如果哪里写的有问题,或者有更好的方式cue我一下

}

面向过程的程序设计把计算机程序视为一系列的命令集合即一组函数的顺序执行。为了简化程序设计面向过程把函数继续切分为子函数,即把大块函数通过切割成小塊函数来降低系统的复杂度

而python面向对象的理解的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递

在Python中,所有数据类型都可以视为对象当然也可以自定義对象。自定义的对象数据类型就是python面向对象的理解中的类(Class)的概念

我们以一个例子来说明面向过程和python面向对象的理解在程序流程上嘚不同之处。

假设我们要处理学生的成绩表为了表示一个学生的成绩,面向过程的程序可以用一个dict表示:

而处理学生成绩可以通过函数實现比如打印学生的成绩:

如果采用python面向对象的理解的程序设计思想,我们首选思考的不是程序的执行流程而是Student这种数据类型应该被視为一个对象,这个对象拥有namescore这两个属性(Property)如果要打印一个学生的成绩,首先必须创建出这个学生对应的对象然后,给对象发一個print_score消息让对象自己把自己的数据打印出来。

给对象发消息实际上就是调用对象对应的关联函数我们称之为对象的方法(Method)。python面向对象嘚理解的程序写出来就像这样:

python面向对象的理解的设计思想是从自然界中来的因为在自然界中,类(Class)和实例(Instance)的概念是很自然的Class昰一种抽象概念,比如我们定义的Class——Student是指学生这个概念,而实例(Instance)则是一个个具体的Student比如,Bart Simpson和Lisa Simpson是两个具体的Student:

所以python面向对象的悝解的设计思想是抽象出Class,根据Class创建Instance

python面向对象的理解的抽象程度又比函数要高,因为一个Class既包含数据又包含操作数据的方法

}

我要回帖

更多关于 python面向对象的理解 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信