# 抽象类和接口类 #** #不崇尚接口类 #python本身支持多继承,没有接口专用的语法.但是我知道接口的概念 # 接口类:# 是规范子类的一个模板,只要接口类中定义的,就应该在子类中实现# 接口类不能被实例化,它只能被继承# 支持多继承 from abc import ABCMeta,abstractmethod class Payment(metaclass=ABCMeta): #模板,接口类 @abstractmethod #装饰接口类中方法的,加上这个装饰器,自动检测子类中的方法名…
计算所居住房子的面积 普通写法 class Room: def __init__(self,name,owner,width,length,heigh): self.name=name self.owner=owner self.width=width self.lenth=length self.heigh=heigh def cal_area(self): print('%s 住的 %s 总面积为 %s' %(self.owner,self.name,self.heigh*self.widt…
一.组合      解决类与类之间代码冗余问题有两种解决方案:1.继承 2.组合 1.继承:描述的是类与类之间,什么是什么的关系 2.组合:描述的是类与类之间的关系,是一种什么有什么关系 一个类产生的对象,该对象拥有一个属性,这个属性的值是来自于另外一个类的对象 class Date: def __init__(self,year,mon,day): self.year = year self.mon = mon self.day = day def tell_birth(self): prin…
封装:将类的属性隐藏 #先看如何隐藏 1,在定义的属性之前加入__. class Foo: __N=111111 #_Foo__N def __init__(self,name): self.__Name=name #self._Foo__Name=name def __f1(self): #_Foo__f1 print('f1') def f2(self): self.__f1() #self._Foo__f1() #在类内部调用的话可以 f=Foo('egon') #这种隐藏需要注意的问题:…
python基础 flask之mock接口 所谓mock接口,其实就是我们在正式接口还没联调或者是测试接口没有正式使用时,自己创建一个模拟接口,来供项目暂时打通功能或者测试流程梳理的桥梁,而我们这儿使用flask模块,它是一个web框架,可以做一个服务使用 import flask #web框架模块 #mock接口 表示虚拟接口 import datetime server = flask.Flask(__name__)#__name__表示把当前这个python文件做成一个服务 @server…
面向对象程序设计中的类有三大特性: 继承,封装,多态 继承:以普通的类为基础建立专门的类对象 封装:对外部世界隐藏对象的工作细节 多态:可对不同类的对象使用同样的操作 在Python中类的继承定义基本形式如下: #父类 class superClassName: block #子类 class subClassName(superClassName): block 说明:在定义一个类的时候,可以在类名后面紧跟一对括号,在括号中指定所继承的父类,如果有多个父类,多个父类名之间用逗号隔开. clas…
面向对象 封装思想:将同一类的函数函数封装到同一个py文件中,方便调用 面向对象也有封装的作用,将同一类的函数封装到一个类中 多态(鸭子模型):多种类型/多种形态 #,什么事鸭子模型 对于一个函数,python对于参数的类型不会限制,传入参数时就可以是各种类型,但是在函数中如果有类似于索引等特有方法,就会对传入的参数类型有一个限制(类似于字符串的.append.send方法) 类似于上述的函数我们认为只要能呱呱叫的就是鸭子(只要有.send方法,就是我们要想的类型) # Python def f…
举例1,返回当前时间接口 ''' 初始化:所有的Flask都必须创建程序实例, web服务器使用wsgi协议,把客户端所有的请求都转发给这个程序实例 程序实例是Flask的对象,一般情况下用如下方法实例化 Flask类只有一个必须指定的参数,即程序主模块或者包的名字,__name__是系统变量,该变量指的是本py文件的文件名 ''' from flask import Flask import datetime server=Flask(__name__) @server.route('/tim…
一.开发接口的作用 1.mock接口,模拟一些接口,在别的接口没有开发好的时候,需要开发一些模拟接口进行调试和测试. 2.查看数据,比如,获取所有学员信息的接口,就不需要提供数据库的查看信息. 二.接口开发 1.在接口开发前,需先安装flask模块,它是一个轻量级的web开发框架.pip install flask 先写个简单的接口来热热身吧.... import flask,json # __name__,代表当前这个python文件 server = flask.Flask(__name__…
这个是根据上次框架版本进行的优化 用python获取excel文件中测试用例数据 通过requets测试接口.并使用正则表达式验证响应信息内容 生成xml文件测试报告 版本更新内容: 1. 整理了CreateTest.test_main()流程逻辑 2. 优化了testcase.xls文件格式 3. 添加了生成XML文件测试报告 代码如下: #!/usr/bin/env python # -*- coding: utf_8 -*- # 获取测试用例文件excel import xlrd impo…
之前是利用python自带的unittest测试框架 这次自己设计一个 之后再一点点往里面加功能 (ps:当然这个框架真的是很简单..很简单...很简单...) excel文件格式: #!/usr/bin/env python # -*- coding: utf_8 -*- import xlrd import json class CreateExcel: def __init__(self): pass @classmethod def open_excel(cls): path = "te…
Flask是一个使用 Python 编写的轻量级 Web 应用框架,安装命令如下 pip install flask 一.服务端接口是怎么开发的? 1.启动一个服务 2.接收到客户端传过来的数据3.登录.注册.支付4.返回数据 二.学会了接口开发可以做什么? 1.测的时候就知道原理了2.mock(模拟)接口,比如我是做电商的,需要调用银行的支付接口,如果别人还没有开发好,我们可以模拟一个假的接口,直接返回支付成功,就可以继续测下面流程了.3.不想别人直接操作你的数据库,所以在服务器上部署一个接口…
requests模块 1.get请求: url = 'http://api.nnzhp.cn/api/user/stu_info' data = {'stu_name':'小黑'} #请求数据 req = requests.get(url,params=data) #发get请求 print(req.json()) #字典 print(req.text) #string,json串 2.post请求: url = 'http://api.nnzhp.cn/api/user/login' data…
__str__,__repr__,__format__ format_dict={ 'nat':'{obj.name}-{obj.addr}-{obj.type}',#学校名-学校地址-学校类型 'tna':'{obj.type}:{obj.name}:{obj.addr}',#学校类型:学校名:学校地址 'tan':'{obj.type}/{obj.addr}/{obj.name}',#学校类型/学校地址/学校名 } class School: def __init__(self,name,a…
一:最基本的属性操作 class Generic: pass g= Generic() >>> g.attribute= "value" #创建属性并赋值 >>> g.attribute 'value' >>> g.unset Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeEr…
在前面一章中介绍了@property的用法,但是存在一个问题,如果我有多个属性想转变成property特性,那不是针对每个都需要实现一个 @propery.setter 和 @property.gettter.这样代码实现太冗余了,而且观感也不好.这一章将介绍如何将这些特性功能单独抽象出来,供各个特性共同使用.作者称这个为特性工厂函数.来看下具体如何实现的 class Quantity(object):     def __init__(self,storage_name):         s…
参考来自廖雪峰Python教程:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143186781871161bc8d6497004764b398401a401d4cce000…
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max-width: 100%; vertical-align: middle; } button, input, select, textarea { color: inherit; font: inherit; } input[type="checkbox"], input[type=&quo…
学习文件数据处理的时候了解到有pickle模块,查找官方文档学习了一些需要用到的pickle内容. 封装是一个将Python数据对象转化为字节流的过程,拆封是封装的逆操作,将字节文件或字节对象中的字节流转化为Python数据对象,不要从不收信任的数据源中拆封数据.可以封装和拆封几乎任何Python数据对象,主要包括: None , True,False 整数,浮点数,复数 字符串,字节,ByteArray对象 元组,列表,集合,包含可封装对象的字典 在一个模块的顶层定义的函数 在一个模块的顶层定…
#1.接口类,对象类.规范类中方法的统一. # 第一版:三个类,每个类中有相同的方法 # class Alipay: # def __init__(self,money): # self.money=money # def pay(self): # print('用支付宝支付了{}钱'.format(self.money)) # class JDpay: # def __init__(self,money): # self.money=money # def pay(self): # print…
一.面向对象学习 特性 class类 一个类即是对一类拥有相同属性的对象的抽象.蓝图.原型.在类中定义了这些对象的都具备的属性.共同的方法. 面向过程编程和面向对象编程: 面向过程编程:使用一系列的指令告诉计算机怎么一步步执行 基本设计思路就是程序一开始是着手解决一个大的问题,然后把一个大的问题分解成很多小问题或子过程 面向对象编程: OOP编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述 世界万物皆对象. 只要是对象,就肯定属于某种类 只要是对象,就肯有属性 面向对象编程: OO…
我们家里都有电视机,从开机,浏览节目,换台到关机,我们不需要知道电视机里面的具体细节,只需要在用的时候按下遥控器就可以完成操作,这就是功能的封装. 在用支付宝进行付款的时候,只需要在用的时候把二唯码给收款方或是扫一下收款方提供的二唯码就可以完成支付,不需要知道支付宝的支付接口,以及后台的处理数据的能力,这就是方法的封装. 生活中处处都是封装的概念. 封装不是单纯意义的隐藏 封装数据的主要原因是保护隐私 封装方法的主要有因是隔离复杂度 在编程语言里,对外提供接口,表示这个接口的函数,通常称为接口函…
一.面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一个功能.举个例子,你要做饭,可以用电磁炉,也可以用煤气灶.不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路,两种最重要的编程范式分别是面向过程编程和面向对象编程. 提到面向对象,就不得不提到另一种编程思想,面向过程:什么是面向过程呢,面向过程的思想是把一个项目.一件事情按照一定的顺…
这篇文章对于初学者可以很有效的理解面对过程.面对对象 一.首先介绍一下面向过程和面向对象的比较: 面向过程 VS 面向对象 编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式, 对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式. 不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路, 大多数语言只…
一. 抽象类接口类即制定一个规范 特点: 1.不可被实例化. 2.规范子类当中必须事先某个方法. 3.在python中有原生实现抽象类的方法,但没有原生实现接口类的方法. 例题:制定一个规范就是,子类都使用pay 方法支付. 二 多态 python 中处处是多态 鸭子类型:看着像鸭子,他就是鸭子. 三 封装 广义的封装:实例化一个对象,给对象空间封装一个属性 狭义的封装:私有制 私有制成员:私有静态字段     私有方法      私有对象属性 私有静态字段 1. 2.通过_ _进行私有制,因此…
1.对象魔法 在面对对象编程中,术语对象大致意味着一系列数据(属性)以及一套访问和操作这些数据的方法. 使用对象而非全局变量以及函数的原因有多个,而最重要的好处不过以下几点: 多态:可对不同类型的对象执行相同的操作,而这些操作全部能够正常运行. 封装:对外部隐藏有关对象工作的具体细节. 继承:可基于通用类创建专用类. 1.1多态 术语多态源于希腊语,意思是有多种形态,这大致意味着即使你不知道变量指向的是哪个对象,也能够对其执行操作,且操作的行为随着对象所属的类型(类)而异. 1.2多态和方法 >…
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 一.面向对象编程1.概念(1)面向对象编程(OOP),是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数.面向对象是一种对现实世界理解和抽象的方法.面向过程是一件事“该怎么做“,面向对象是一件事“该让谁来做”,然后那个“谁”就是对象,他要怎么做是他自己的事,反正最后一群对象合力能把事做好就行了.面向对象三个特性:…
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max-width: 100%; vertical-align: middle; } button, input, select, textarea { color: inherit; font: inherit; } input[type="checkbox"], input[type=&quo…
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max-width: 100%; vertical-align: middle; } button, input, select, textarea { color: inherit; font: inherit; } input[type="checkbox"], input[type=&quo…
27. 属性的__dict__系统 1)对象的属性可能来自: 其类的定义,叫做类属性 继承父类的定义 该对象实例定义(初始化对象时赋值),叫做对象属性 2)对象的属性存储在对象的 __dict__ 属性中: __dict__ 为字典,键为属性名,值是属性本身. 例子: class bird(object): feather = True # 父类 class chicken(bird): fly = False def __init__(self, age): self.age = age #…