![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python通用
文章平均质量分 66
Python learning record
Moelimoe
Every single day that makes no difference is a betrayal to my life.
展开
-
Python中的多线程和多进程应用模拟以及协程程序中使用多线程和多进程
总而言之,虽然说GIL的存在限制了同一个进程下同一时刻最多允许一个线程运行,但也有例外,这个例外就是使用线程池开启新的线程loop.run_in_executor后台执行,这个在新的线程中运行的任务,虽然仍然是当前进程下的线程在执行,但是它不会受到当前进程的GIL存在的影响,它可以和当前进程中的其他线程并行运行。从结果来看,一个1s左右的CPU密集运算函数(cpu_bound_task),和1个1s异步sleep的函数(coro_task),受到了GIL的限制,其运行时间是2s左右,很合理。原创 2023-08-21 18:58:38 · 308 阅读 · 0 评论 -
Python缓存类实例
本篇文章的内容主要包含利用Python弱引用存储字典缓存类的实例,让参数相同的实例不用重复生成略过代码编写,利用Python自带库缓存实例或方法在Python的许多库中都有缓存实例的例子,比如logging模块的Logger类实例import logginga = logging.getLogger("abc")b = logging.getLogger("abc")print(a is b) # True弱引用(weakref)通常用于缓存或映射数据量较大的对象,当你使用p原创 2022-04-02 20:14:22 · 1702 阅读 · 0 评论 -
Python实现访问者模式
假设要实现一个存放多种类型数据结构的对象,比如一个存放算术操作数和操作符的树结点,需要存放包含一元操作符、二元操作符和数字类型的结点class Node: passclass UnaryOperator(Node): def __init__(self, operand): self.operand = operandclass BinaryOperator(Node): def __init__(self, left, right):原创 2022-03-29 23:13:10 · 1226 阅读 · 0 评论 -
Python 代理类实现和控制访问与修改属性的权限
代理类实现与实例展示将一个类实例的属性访问和控制代理到代码内部另外一个实例类,将想对外公布的属性的访问和控制权交给代理类来操作,保留不想对外公布的属性的访问或控制权,比如只读访问,代理类的方式也可以作为继承的一种替代方式,代理类可以做的一些事情代理类的一个简单的实现方式示例目标:实现类Product的实例属性让另一个类Proxy来代理访问和控制,想将对外公布的属性交给代理类让外部访问和控制,不想对外公布的属性无法通过代理来访问和控制,这里不想对外公布的属性约定用下划线命名开头# proxy_exa原创 2022-03-20 12:47:47 · 1324 阅读 · 0 评论 -
Python写一个字符串的数字后缀部分递增的函数
需求:Python处理重名字符串,添加或递增数字字符串后缀对于2个重名的字符串,添加数字后缀,比如两个重复的字符串s1 = “name”, s2 = “name”,将s2的名称设置为name_1对应3个或多个重名的字符串,数字部分实现递增,初始时s1=s2=s3=“name”,重命名后得到s1=“name”, s2=“name_1”, s3=“name_2”要灵活处理字符串问题,使用re模块最为方便下面是一个对带有下划线+数字的后缀字符串递增的方法def increase_string_su原创 2022-01-29 21:26:25 · 1987 阅读 · 0 评论 -
python 嵌套型partials(nested partials)的使用
def _compose2(time_fmt):date_trunc = CstFunc().DateTruncfrom_timestamp = CstFunc().FromTimestampreturn lambda time_unit, field: from_timestamp(date_trunc(time_unit, field), time_fmt)def ts(f, tu):return partial(f, tu)class Te(Enum):week = ts(_compos原创 2021-12-27 22:30:38 · 612 阅读 · 0 评论 -
Python enum的使用总结
枚举(enumeration)在许多编程语言中常被表示为一种基础的数据结构使用,枚举帮助组织一系列密切相关的成员到同一个群组机制下,一般各种离散的属性都可以用枚举的数据结构定义,比如颜色、季节、国家、时间单位等在Python中没有内置的枚举方法,起初模仿实现枚举属性的方式是class Directions: NORTH = 1 EAST = 2 SOUTH = 3 WEST = 4使用成员Direction.EAST Direction.SOUTH 检查成员原创 2021-11-20 11:40:57 · 5293 阅读 · 0 评论 -
Python多线程单例的几种实现方式
1. 单例模式;2.装饰器批量装饰实现单例,且不丢失类型提示;3.限制实例个数原创 2021-03-20 00:47:56 · 2272 阅读 · 0 评论 -
求4个数字组成的不重复三位数,Python简洁解法
求4个数字组成的不重复三位数,Python解法题目要求:求所有由5,6,7,8组成的数字不重复的三位数不重复的三位数,即不能出现555,566这种通过分析,可以使用画树的方法来确定要求的三位数的值与个数按照上图分析所示可以确定由5,6,7,8共可以组成24个不重复的三位数于是写出Python代码如下:class Solution: def noRepeatTriplets(self, strs='5678'): global n first, sub_原创 2021-03-11 22:52:04 · 3978 阅读 · 2 评论 -
Python3之字典生成器结合lambda实现按key/value排序
1、字典按value排序:dict1 = {"g": 2, "f": 1, "a": 6}d1 = sorted(dict1.items(), key=lambda d: d[1], reverse=True)d2 = sorted(dict1.items(), key=lambda d: d[1], reverse=False)print(d1)print(d2)输出:[('a'...原创 2020-03-23 22:36:32 · 1277 阅读 · 0 评论 -
numpy中两个array数值比较,在IDE中显示完全相同,但是bool判断两个array是否相等却返回False
numpy中两个array数值比较,在IDE显示相同,但是bool值却是False在numpy数据比较时,在IDE显示相同但是比较是否相等却有时候反回False原因是使用了np.set_printoptions(precision=3) # 可以设置显示精度np.set_printoptions(suppress=True) # 抑制小数的科学计数法显示抑制小数点显示,但是实际上小数...原创 2020-03-01 12:08:49 · 1279 阅读 · 0 评论 -
python3列表生成式中的for循环与普通放在外面的for循环细微差异
python3列表生成式与for循环的差异实例:给定列表alist = [1,2,3,4,5,6,7]当k=3输出[5,6,7,1,2,3,4]当k=2输出[6,7,1,2,3,4,5]1.List generation:alist = [1,2,3,4,5,6,7]k = 3alist[0:0] = [alist.pop() for i in range(1,k+1)]pr...原创 2019-11-23 13:50:07 · 703 阅读 · 0 评论 -
python3 numpy中矩阵np.dot(a,b)乘法运算
numpy中数组相乘np.dot(a,b)运算条件首先np.dot(a,b)和a.dot(b)运算结果是一样的,并且dot是不满足交换律的,所以np.dot(a,b)与np.dot(b,a)是不一样的对于两数组a和b(适用于每一个最小[]的维度都相等的数组):np.dot(a,b) 的运算条件:需满足b中最小[]的个数等于a中最小[]中元素的个数;同理对于np.dot(b,a) 的运算条件...原创 2019-08-21 22:42:48 · 7845 阅读 · 0 评论