默玖
-
fastapi篇(一)
fastapi是一个高性能的web开发框架 性能极高,可与 NodeJS, Go 媲美。(得益于Starlette和Pydantic)。 Starlette 是一个轻量级 ASGI 框架/工具包。它非常适合用来构建高性能的 asyncio 服务,并支持 HTTP 和 WebSockets。 官方网址:https://www.starlette.io/ P…
-
工匠回忆(三)
接上文 7、函数 7.1、长度 7.2、圈复杂度 7.3、函数内代码确保处在同一抽象层内,主流程清晰,不存在穿插的分支 7.4、有状态的函数 7.4.1、全局变量 7.4.2、闭包函数 7.4.3、类 比较偏向于后两者 8、装饰器 装饰器和装饰器模式是两个完全不同的概念 1、三方模块wrapt的引入…
-
工匠回忆(二)
接上文 4、条件分支控制流 避免分支嵌套,异常放在代码片段最前面 4.1、归约函数 4.2、条件表达式的封装避免过长而导致可读性下降 4.3、德摩根定律 4.4、and、or优先级 4.5、or短路效应 4.6、消失的分支 4.6.1、二分查找算法 4.6.2、字典算法 5、异常错误处理 无需多言 6、…
-
工匠回忆(一)
不久之前看过《python工匠》,腾讯大佬朱磊写的,后来一段时间零零散散也会翻开看看,强烈推荐!!! 1、变量注释 变量与注释是最接近自然语言的东西,把变量与注释搞好,同样一段代码,却带来两种截然不同的体验 1.1、变量开辟的必要性 1.2、变量注意靠近使用 1.3、注意变量描述性要强、同时注意其长度 1.4、变量的命名要突出类型 1…
-
装饰器的多种实现方式
一、基于函数实现 1、嵌套函数 代码实现: 1 from functools import wraps 2 3 4 def decorator(param): 5 def wrapper(func): 6 @wraps(func) 7 def verify(*args, **kwargs): 8 if param == ‘g’: 9 print(“&…
-
浅用描述符
可以理解为property方法的一种进阶,都可以用来创建一种新形式的实例属性,即在实例属性值的获取和设定上,增加额外的处理事务,such as:类型检查、验证 重写三个属性访问方法,其中__delete__方法是否重写取决需求 在类层次上引用描述符,即该类遵从描述符协议 1 class Check: 2 def __init__(self, na…
-
泛型
第一个参数类型决定执行特定的方法体 一、单分派泛函数 只对函数的第一个参数做类型检查,发现局限性太大,没什么特别的应用场景,也可能是我没用到 1 from functools import singledispatch 2 3 4 @singledispatch 5 def func(a, *args): 6 raise TypeError(“暂不支持{…
-
pyqt入门
第一次接触pyqt是在20年刚毕业的时候,时隔两年,恰逢闲暇,正好回过头来对这个模块的知识进行一个整理,不会做系统化的整理,我打算可能会围绕之前做过的小工具对其涉及到的控件、信号和槽等知识进行简单的回忆。后面工作如果再涉及或者想到其他的,会再回来更新完善。 pyqt5:同前面整理的kivy一样,同属于GUI开发框架的范畴,不同的是,pyqt用于桌面应…
-
比较赋值、浅拷贝、深拷贝
1、无论是浅拷贝还是深拷贝,拷贝对象后是否会开辟新内存,取决于被拷贝对象的数据类型是否可变,一般来讲,可变的数据类型会开辟新内存,不可变数据类型反之不会开辟新内存,进行内存地址的引用(-5-256以外的大整数池会开辟内存,注:但我本地进行测试比较内存还是一样的,有问题) 2、要在单层、嵌套型对象中逐一比较拷贝 3、浅拷贝和深拷贝的区别主要体现在对嵌套型结构的…
-
命名元组
1、命名元组也叫具名元组 可以通过名称来访问序列中的元素,摆脱对位置的依赖,他本身是一个工厂函数 2、应用1 实例化元组返回的类,其内存占用要比普通类实例要小的多,因为前者实例的属性不通过字典进行管理 1 from collections import namedtuple 2 3 # 返回可实例化的类 4 P = namedtuple(“人”, […