接口测试学习-python第七课(面向对象编程)

以前都是面向过程编程,做一件事是按顺序来的,必须经过很多操作。现在是面向对象编程,将各种操作集合在一起,然后指挥其适用于多个场景。上课时老师举了一个蛮贴切的例子,比如买车,面向过程就是先去学车,然后去4s店买车,然后去办证,然后保险,然后临时牌照,然后正式牌照。面向对象就像将这些所有步骤会经历的场景整合起来,直接开一个车辆购置办证中心,然后从学车到办证甚至以后的缴纳罚款全都在这里处理。在我的理解,面向对象就是给一些有共同性的事物先造一个模型,这个模型有这些事物共同的属性,也有这些事物共同的处理方法。然后一旦需要针对某个事物单独操作时,只要调用这个模型,这个事物就可以根据已经配好的属性和方法很快的建造起来。面向对象编程有几个基础的点,分别是类、构造函数、属性、方法、实例化。细化分还有类变量、实例变量、类方法、实例方法、析构函数、私有化、继承等等。1、类类是利用class定义的,如num1和num2,这两者的区别是类num2后面的括号里有“object”,前者被称为经典类,后者被称为新式类。没有很大的区别。
1 class num1():
2     pass
3
4 class num2(object):
5     pass

2、属性

属性其实就是变量,包括类变量(直接在类中定义的变量)和实例变量(在“def __init__(self):”下定义的变量)。

比如一个班有很多个学生,都生活在成都,学生们的年级、班级和年龄假设都是一样的,那么这些就是学生的共同属性,可以用变量先定义。

1 class Students():
2     county = ‘China‘  # 类变量,公共变量,每个实例都能用,可以节省内存
3     def __init__(self):
4         self.class = ‘高三二班‘  # 实例变量
5         self.age = 18

3、方法

如果我们要打印这个班学生的姓名、班级和年龄。那么就得创造一个方法,也是一个函数。比如下面的print_info函数,就可以打印出每个对象的姓名、班级和年龄。

 1  class Students():
 2      county = ‘China‘  # 类变量,公共变量,每个实例都能用,可以节省内存
 3      def __init__(self, name):
 4           self.class = ‘高三二班‘  # 实例变量
 5           self.age = 18
 6             self.name = name
 7
 8      def print_info(self):
 9          print(‘学生的姓名是%s‘ % self.name)
10          print(‘学生的班级是%s‘ % self.class)
11          print(‘学生的年龄是%s‘ % self.age)

4、实例化

每一个类都是必须实例化才能使用的,不能那种车辆模型开车上路对吧,还是要有一辆真正的车才行。实例化就相当于对比着自己喜欢的模型得到一个真实的物品,这个物品是根据模型对比购买的,所以它拥有和模型同样的颜色、模样等等。所以实例化的对象是拥有类里面的属性和方法的。

 1  class Students():
 2      county = ‘China‘  # 类变量,公共变量,每个实例都能用,可以节省内存
 3      def __init__(self, name):
 4           self.class = ‘高三二班‘  # 实例变量
 5           self.age = 18
 6           self.name = name
 7
 8      def print_info(self):
 9          print(‘学生的姓名是%s‘ % self.name)
10          print(‘学生的班级是%s‘ % self.class)
11          print(‘学生的年龄是%s‘ % self.age)
12
13 zxm = Student(name = ‘张晓明‘)  # 实例化
14 print(zxm.class)  # 输出结果为18
15 zxm.print_info()  # 会打印zxm这个对象的姓名、班级、年龄

5、构造函数和析构函数

构造函数就是类实例化时运行的函数,析构函数就是销毁实例化对象的函数。一般连接数据库后需要关闭数据库,这里可以将关闭数据库的代码放在析构函数中,这样执行完毕后自动销毁实例同时自动关闭链接。

 1 class MyDb(object):
 2     # 析构函数
 3     def __del__(self):
 4         self.cur.close()
 5         self.coon.close()
 6         print(‘over....‘)
 7     # 构造函数
 8     def __init__(self,
 9                  host,user,passwd,db,
10                  port=3306,charset=‘utf8‘):
11         try:
12             self.coon = pymysql.connect(
13                 host=host,user=user,passwd=passwd,
14                 port=port,db=db,charset=charset,
15                 autocommit=True  # 自动提交,在非select语句时可以不需要再commit了
16             )
17         except Exception as e:
18             print(‘数据库链接失败!%s‘ % e)
19         else:
20             self.cur = self.coon.cursor(cursor=pymysql.cursors.DictCursor)

6、私有

变量分私有变量和公有变量,顾名思义,私有变量就是只能在类里面调用的不可修改的变量,而公有变量是在类外对象也可以调用修改的变量。私有变量的定义方法就是在变量名前面加两个下划线。

 1 import redis
 2 class My(object):
 3     def __init__(self):
 4         self.__host = ‘***.*.**.**‘  # 私有变量
 5         self.__port = 6379
 6         self.__password = ‘*******‘
 7
 8         self.r = redis.Redis(host=self.host,port=self.port,password=self.password)
 9
10     def get(self, k):
11         res = self.r.get(k)
12         if res:
13             return res.decode()
14         return None
1 my = My()  #实例化
2 my.port = 9999  # port是私有变量无法修改
3 print(my.__host)  # host是私有变量,无法在类外调用
4 my.__close()  # close是私有方法,无法在类外调用

7、继承

定义新式类时括号中一般会写“object”,其实这就是定义的类继承了object类。所以写在括号中的类就是定义的类所要继承的类。被继承的类可以成为父类或者基类,新的类成为子类。子类可以继承父类的所有属性和方法,并可以定义自己的属性和方法且不会影响父类。

比如下面,定义了一个连接数据库的基础类,这个类有一些属性如host、port、password等等。而不论连接mysql数据库或者redis数据库都会用到这些属性。那么定义MySQL类和redis类时就可以直接继承Base类,这样host、port、password这些属性就可以直接使用了。

 1 class Base(object):
 2     def __init__(self, host, port, password):
 3         self.host = host
 4         self.port = port
 5         self.password = password
 6
 7
 8 class Mysql(Base):
 9     pass
10
11
12 class Redis(Base):
13     pass


原文地址:https://www.cnblogs.com/myyard777/p/9091124.html

时间: 2024-10-01 02:48:34

接口测试学习-python第七课(面向对象编程)的相关文章

python第七周-面向对象编程进阶

申明:本文内容主要转自Alex老师的博客,仅供学习记录! 静态方法 只是名义上归类管理,实际上在静态方法里访问不了类实例中的任何属性 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它与类唯一的关联就是需要通过类名来调用这个方法 1 clas

接口测试学习-python第八课(数据驱动测试)

自动化分为三类,数据驱动即根据数据去进行测试:代码驱动即测试都是通过代码完成的:关键字驱动即依靠一些软件,利用关键字完成测试.本次主要记录数据驱动,自动化框架主要有以下几个部分: ①获取用例 ②调用接口 ③检验结果 ④发送测试报告 ⑤异常处理 ⑥日志 以前进行接口封装的时候,有过将代码分别放在不同的文件夹下的经历.这次也以这样的模式来完成,主要做到以下几点:首先读取用例,其次根据用例完成接口测试,然后记录结果到用例文件中,最后发送邮件.同时各个部分关键结果处需要记录日志. 1.setting文件

python学习第十四天 -面向对象编程基础

python也是支持面向对象编程的.这一章节主要讲一些python面向对象编程的一些基础. 什么是面向对象的编程? 1.面向对象编程是一种程序设计范式 2.把程序看做不同对象的相互调用 3.对现实世界建立对象模型 面向对象编程的基本思想: 1.类用于定义抽象类型 2.实例根据类的定义被创建出来 如何定义一个类并创建实例? >>> class Animal(object): pass >>> dog = Animal() >>> cat = Animal

python笔记 - day7-1 之面向对象编程

python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: sele是什么? self是一个python自动会给传值得参数: 哪个对象执行方法,self就是哪个对象: 构造方法: 类中有一个特殊的方法,__init__,类()自动执行: 面向对象,三大特性: 封装,继承,多态:  

深入学习python (七) 如何用python调用C/C++接口

python这门优美而以人为本的语言的人性化导致其开发效率的高,高的同时他牺牲了的程序运行效率,在项目开发的后期,可以通过对某些耗时的松耦合的单独的瓶颈模块进行C++重构,然后直接用python改调用C++写的模块即可. 看过了网上的一些例子,自己也来试一试: 首先是一个C++程序的代码,test.cpp如下: #include <iostream> char const* hello() { return "hello, world"; } void bye() { us

十三、Python高级功能之面向对象编程

Python高级功能之面向对象编程(类和对象) 一.类和对象: 面向过程和面向对象的编程 面向过程的编程:函数式编程,C程序等 面向对象的编程:C++,Java,Python等 类和对象:是面向对象中的两个重要概念 类:是对事物的抽象,比如:汽车模型 对象:是类的一个实例,比如:QQ轿车.大客车 范例说明: 汽车模型可以对汽车的特征和行为进行抽象,然后可以实例话为一台真实的汽车实体出来 二.Python类定义 Python类的定义: 使用class关键字定义一个类,并且类名的首字母要大写: 当程

Python基础-第七天-面向对象编程进阶和Socket编程简介

本篇内容: 1.面向对象编程进阶-静态方法 2.面向对象编程进阶-类方法 3.面向对象编程进阶-属性方法 4.面向对象编程进阶-特殊成员(内置方法) 5.面向对象编程进阶-反射 6.异常处理.断言 7.Socket编程简介 一.面向对象编程进阶-静态方法 1.静态方法的实现 通过@staticmethod装饰器可以把其装饰的方法变为一个静态方法: 变成静态方法后,形参中可以不用写self了.如果写了self,默认是不会把对象本身传递给self,需要手动传递: class Dog(object):

C++学习 8.1 - 欢迎进入面向对象编程

C++学习系列文章均翻译自learncpp.com,一个非常好的C++学习网站,这个网站让我领悟到原来深奥的道理也可以讲的如此浅显易懂, 如果所有的软件都有类似的网站该多好啊,为了加深印象,我决定逐章翻译一下这个网站,哎,我自己都不相信我能做到... 之前的所有章节到目前为止都有一个共同的特点:他们都是非面向对象的.现在你已经掌握了一些基本知识我们可以进入面向对象编程了,这才是重头戏! 在传统的编程方法中,程序只是一系列发给电脑的指令,通过定义数据(通过变量)然后处理数据(通过语句和函数).数据

Java学习 (九)、面向对象编程

一.理解面向对象 结构化程序设计 1.程序=算法+数据结构 2.算法第一,数据结构第二 二.面向对象程序设计OOP 1.程序=对象+对象+… 2.据第一,算法第二 3.关键:让每个对象负责执行一组相关任务 三.面向对象编程的特性 1.万物皆对象 2.程序是一组对象彼此之间在发送消息 3.每个对象都有自己的内存占用,可以组装成更大的对象 4.每个对象都有类型,特定对象的所有类型都可以接收相同消息 四.类和对象的概念.区别和联系 概念: 类①类是创建对象的模板和蓝图②类是一组类似对象的共同抽象定义