【python】进阶之并发编程(七) 7 并发编程并发编程的目的:提高程序处理任务,处理请求的速度/能力。 并发编程的方式: 多进程 多线程 协程 7-1 开启多进程的两种方式 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。 需要强调的是:同一个程序执行两次,那就是两个进程 方式1:Process 1234567891011121314151617import timefrom multiprocessin 2024-03-20 python #python #笔记
【python】进阶之元类(六) 元类【深入理解Python】6.1 类也是对象 元类是什么?要先了解类是什么? Python是一切皆对象,哪怕你定义一个变量,它也是对象,那类是什么? 类可以想象成是对象的模版,是类定义了对象,对象是类实例化的产物, 那类是对象的模板,什么是类的类(模版)呢? 元类就是类的类(模版)默认元类type 你可以自定义这个元类来实现有区别于类的类 12345678910111213141516clas 2024-03-20 python #python #笔记
【python】进阶之魔法方法(五) 5 魔法方法5-1init 和 del 【重点】 为什么叫魔法方法? 只有在某种条件下才触发,就像魔法一样 __init__ :当你定义的类,被实例化的时候,自动执行,给对象初始化属性,这个方法里面放self.xxx属性=xxx然后这个xxx由init方法入参,所以你在实例化对象的时候,就需要传这个参数进去,这个参数就是对象的属性 这个 __init__ 默认是返回None的,默认不写 2024-03-18 python #python #笔记
【python】进阶之面相对象(四)【重点】 4 面相对象【重中之中】面向对象不是什么语法关键字,也不是什么函数方法, 而是一种思想,具备这种思想,才能写Python, 换言之: 如果不具备这种思想,就写不好Python !!! 如果不具备这种思想,就写不好Python !!! 如果不具备这种思想,就写不好Python !!! 通过本文可以对Python 面向对象有写启蒙,但是具体要根据项目实际场景应用才能深刻体会。 4.1 一切皆对象【重点 2024-03-18 python #python #笔记
【python】进阶之函数详解(三) 3 函数3.1类型提示 Python 3.6后加入了新功能:类型提示,用来声明一个变量的类型 在FastAPI中,类型提示可以用到Swagger文档中 1234567def get_name_with_age(name: str, age: int) -> str: pass# 基本类型: int、float、bool、bytesfrom typing import List: de 2024-03-18 python #python #笔记
【python】进阶之数据结构(二) 2 数据结构2.1基本数据结构可变:列表、字典、集合 不可变:数字、浮点、字符串、元组(需元组内无可变) 直接访问:数字 顺序访问(序列类型):字符串、列表、元组 Key值访问(映射关系):字典 2.2 深浅拷贝【什么是拷贝】:原封不动地复制一份新的,在不同的内存地址上,修改旧的不会影响新的。 变量赋值不是拷贝 变量赋值不是拷贝操作,因为变量名list1和变量名list2指向的是一块相同的内 2024-03-18 python #python #笔记
【python】进阶之基础回顾(一) 1 基础回顾1.1变量赋值和引用 当有一个新变量的时候,内存空间就会开辟一块数据存储 变量不同,地址是不同的,可以用id( )获取内存地址 变量引用的本质就是将这个变量的内存地址,关联到一个新变量中,两个变量指向的是同一个地址, 所以变量是不占内存的, 1.2 小整数池小整数池就是Python解释器在程序开始运行的时候就预先开辟的一块内存空间,存放一部分的整数,方便后面去调用,用于优化资源消耗的 2024-03-18 python #python #笔记
【python】之使用gRPC gRPC Python调用通过一个简单的工作示例使用 Python 中的 gRPC。 1 、定义rpc 接口 ,proto文件 hello.proto1234567891011121314151617181920syntax = "proto3";option go_package="../proto";service Greeter { // 2024-03-14 python #python #笔记
【python】闭包之回调函数异步应用场景 python 闭包函数 的用途闭包函数在Python中有多种用途,下面是一些常见的应用场景: 封装数据:闭包函数可以用于创建对象的私有变量,将变量隐藏在函数内部,只能通过特定的函数访问和修改。这样可以避免全局变量的污染,并增加代码的封装性和安全性。 保留状态:闭包函数可以捕获并保留其定义时的上下文环境。这意味着函数可以记住其被创建时的状态,可以在后续调用中继续使用这些状态。这在需要保持持久状态的 2024-03-05 python #python #笔记
【python】之装饰器的基础实现和常见装饰器 原理实现方式应用场景及常见装饰器 在Python接口自动化测试中,装饰器可以用于增强测试函数的功能或改变其行为。以下是一些可能使用的装饰器示例: 设置和清理环境【setup和teardown】@setup:用于在测试开始前初始化环境或配置。123456789101112131415161718192021222324252627class CustomTestRunner: def __i 2024-03-05 python #python #笔记
【python】FastAPI之异步async-await(八) 12-1 fastapi是异步Web框架【重点】FastAPI这个web框架是异步框架,那它到底是如何体现异步的呢? 本质上,实现异步的方式有三种:多进程、多线程和协程,FastAPI实现异步使用了多线程(线程池)和协程的方式。 当我们写普通形式的代码时:即使用 def 定义路径函数,FastAPI内部帮我们使用多线程(线程池)实现异步并发 当我们写async形式的代码时:即使用 async d 2024-03-04 python #python #编程,web开发
【python】FastAPI7之APIRouter与请求响应的进阶用法(七) 10-1 APIRouter基本使用【重点】场景: 如果我们写一个网站,或者写一个APP,那整个项目是比较复杂的,此时不应该把所有代码放在一个文件中。 前面我们通过把代码拆分到不同文件的方式,可以解决一些代码混乱的问题,但是却不能更好的解决。 比如一个项目中可能含有不同的模块,那不同的模块应该分开管理,这样项目才便于维护和管理。。 FastAPI的解决方式 APIRouter就是FastAPI为了 2024-03-04 python #python #编程,web开发
【python】FastAPI之登录认证(六) 9-1 用户注册对于很多应用来说,注册接口是必可不少的。想要实现注册接口,其实很简单,但是你会发现会有很多种选择: 注册时有需要哪些字段? 注册接口使用什么请求方式? 前端朝后端传数据时,放在查询参数中、请求体中? 如果放在请求体中,使用JSON格式还是表单格式? 解决方式 你会发现就一个简单的注册接口,其实还是有很多问题需要我们思考的。 首先,注册接口一般是将用户的个人信息提交给服务端,因 2024-03-02 python #python #编程,web开发
【python】FastAPI之数据库操作(五) 8-1 关系型数据库由于之前学过数据库基础知识,这里不做介绍只做对比 场景的数据库一般表现为软件,比如 MySQL、Oracle、SQL Server、PostgreSQL、DB2、SQLite等等(关系型数据库)。 Redis、Memcached、MangoDb等等(键值型数据库)。 关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,可以类比EXC 2024-02-28 python #python #编程,web开发
【other】UML类图简单学习笔记 UML图是软件工程建模中对程序设计描述的设计图类的总称,可以让我们更清晰的了解项目的结构。 常见UML图包含类图、对象图、组件图、部署图、用例图等结构行为图以及序列图、协作图、状态图、活动图等动态行为图,想要拓展的可以参考网上博客—>九种常见UML图 本文是最常用的UML类图的笔记 一、UML类图简介类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一 2024-02-26 other #笔记 #UML #视野
【python】之设计模式【未完】 前言第1章 简介1.1 面向对象相关1.2 面相对象的3个设计设计原则第2章–单例设计模式【创建型模式】2.1 理解单例12.1.1实现单例 –代码解读1234567891011121314151617181920212223242526272829# 单例模式class Singleton(object): def __new__(cls): # __new__是在实例化的时候调用的方法 2024-02-23 python #python #笔记
【linux】Ubuntu上使用Charles Ubuntu上使用Charles 下载 使用官网链接下载 https://www.charlesproxy.com/download/下载.tar.gz包后解压,进入解压目录/charles/bin 执行charles文件可打开charles 命令行方式下载安装 1234wget -q -O - https://www.charlesproxy.com/packages/apt/Public 2024-02-23 linux #笔记 #linux #ubuntu
【python】之pytest如何使用fixture夹具-四【重】 四、关于fixtures测试夹具的使用【重点】这篇文章主要介绍fixture夹具,在项目中的使用技巧,代码比较多,文章比较长,请耐心看完 有些官方文档上的代码比价绕或者冗余,就自己写了简单版的便于理解 4.1 “Requesting” fixtures(请求夹具)在基本层面上,测试函数通过将它们声明为参数来请求它们所需的装置。 当pytest运行测试时,它会查看该测试函数签名中的参数,然后搜索 2024-01-23 python #python #笔记 #pytest
【python】之pytest在测试中编写和报告断言(三) 三 如何在测试中编写和报告断言3.1 使用 assert 语句断言pytest 允许使用标准 Python 断言来验证 Python 测试中的期望和值。例如,可以编写以下内容: assert 是Python中的关键字,assert 后面跟的如果为Ture 就通过,为False 1234567# content of test_assert1.pydef f(): return 3def 2024-01-22 python #python #笔记 #pytest
【python】之pytest命令行调用(二) 二 如何用命令行调用pytestSee also Complete pytest command-line flag reference 也可以点击链接查看完整的命令行介绍(那可太全面了) In general, pytest is invoked with the command pytest (see below for other ways to invoke pytest). This 2024-01-21 python #python #笔记 #pytest