随笔分类 -  python进阶

上一页 1 2 3 下一页

python高阶知识
循环优化一
摘要:主角:takewhile 判断序列中元素是否为偶数,奇数则终止 这是我们最常用的一种方式,其实没必要这么复杂 1 a = [4, 6, 7, 3] 2 3 4 def judge_is_even(item): 5 if item % 2 == 0: 6 return True 7 return Fa 阅读全文

posted @ 2022-12-08 18:10 默玖 阅读(43) 评论(0) 推荐(0) 编辑

委托的简单延伸
摘要:前面说过,委托/代理是一种编程模式 获取属性值重写__getattr__即可 相反修改内部对象的属性值则重写__setattr__ 未完 待续,,,,,, 阅读全文

posted @ 2022-12-07 19:03 默玖 阅读(14) 评论(0) 推荐(0) 编辑

数据模型的类型的约束
摘要:基于描述符建立数据模型实现赋值验证框架 在实例属性的获取和设定方面,前面已经提过可以使用property和描述符实现 1、创建数据模型的基础构建模块 1 class Descriptor: 2 def __init__(self, name=None, **opts): 3 self.name = 阅读全文

posted @ 2022-12-06 10:55 默玖 阅读(32) 评论(0) 推荐(0) 编辑

property用法之一隅
摘要:实现在返回类实例进行初始化时执行类型检查 这要求: 1 class Valley: 2 def __init__(self, origin_val): 3 # 非_val是为了确保初始化时候也能对属性执行类型检查 4 self.val = origin_val 5 6 @property 7 def 阅读全文

posted @ 2022-12-05 10:26 默玖 阅读(22) 评论(0) 推荐(0) 编辑

迭代器执行切片
摘要:普通的切片对迭代器无法实行切片操作 1 from itertools import islice 2 3 4 def func(): 5 for i in [4, 9, 6, 2]: 6 if i % 2 == 0: 7 yield i 8 9 10 f = func() 11 res = isli 阅读全文

posted @ 2022-12-04 14:32 默玖 阅读(50) 评论(0) 推荐(0) 编辑

线程锁在单例模式中的应用
摘要:多个线程在执行过程中会因为竞争同一个资源而产生线程冲突,造成死锁,从而引出线程锁这个概念 先拿到锁再执行业务操作: 当然我对这一块了解的还不透彻,只是了解在不加锁的多线程情况下,会破坏单例模式,所以就有了下面这一段 1 import time 2 import threading 3 4 5 def 阅读全文

posted @ 2022-11-25 17:39 默玖 阅读(82) 评论(0) 推荐(0) 编辑

抽象类的子类化机制
摘要:抽象类:可以作为顶层基类,从高层次规范编程接口 1、在abc模块中,最常见的抽象类有Iterable,我们可以用他判断一个对象是不是可迭代对象 1 from collections.abc import Iterable 2 3 4 class Valley: 5 6 def __iter__(se 阅读全文

posted @ 2022-11-21 15:17 默玖 阅读(59) 评论(0) 推荐(0) 编辑

二分查找算法
摘要:是一种针对有序集合的查找算法 在python中,有一个模块与之密切相关,就是bisect 1 import bisect 2 3 4 def func(): 5 a = [1, 5, 9] 6 bisect.insort(a, 6) 7 return a 8 9 10 if __name__ == 阅读全文

posted @ 2022-11-21 10:03 默玖 阅读(11) 评论(0) 推荐(0) 编辑

多组合少继承
摘要:继承: 强调类与类之间的关系 组合: 强调对象和对象之间的关系 清楚python支持多继承,从而涉及到一些MRO的点,这里不做赘述,在实际工作过程中,我们经常会使用继承来实现代码复用,如果仅仅是为了复用,还是比较推荐使用组合方式,因为继承方式,使得类与类之间的耦合性变得异常紧密,这多少违背了迪米特法 阅读全文

posted @ 2022-11-18 11:38 默玖 阅读(70) 评论(0) 推荐(0) 编辑

猴子补丁
摘要:作用:随时修改代码 (在函数或类定义完成之后,再去修改函数的实现过程) """类似猴子补丁在函数定义好之后,再去更改他的行为"""import typesclass Valley: def func(self): return "等待宣告"def common(self): return "只有永不 阅读全文

posted @ 2022-11-17 16:34 默玖 阅读(69) 评论(0) 推荐(0) 编辑

pydantic初探
摘要:数据校验的的专业工作请看pydantic 1 from pydantic import BaseModel, conint, ValidationError 2 3 4 class NumVerify(BaseModel): 5 # 限定范围 6 expected_number: conint(ge 阅读全文

posted @ 2022-11-16 22:41 默玖 阅读(67) 评论(0) 推荐(0) 编辑

生成器的反向验证
摘要:生成器是一种特殊的迭代器,也可以说其父类型是迭代器 1、迭代器其实也有很多点要清楚,这里先不做赘述 2、要清楚,迭代器调用iter()返回的是自身 1 def func(s, e): 2 """ 3 生成器函数 4 :param s:起始值 5 :param e: 末值 6 :return: 7 " 阅读全文

posted @ 2022-11-16 22:20 默玖 阅读(56) 评论(0) 推荐(0) 编辑

钩子函数
摘要:控制子类的的创建 1、元类 这种方式可能是最常见的也是我们最先知晓的,当然这种方式可能需要我们对元类有比较深入的了解,所以引入了下面的这种方式 2、钩子函数 __init__subclass__,字面意思,父类实现了该双下方法,其后凡是继承他的派生类,都会触发此方法,进行派生类的初始化,实现派生类属 阅读全文

posted @ 2022-11-15 11:08 默玖 阅读(158) 评论(0) 推荐(0) 编辑

德摩根定律
摘要:命题逻辑里的一个法则 定义:非p或非q=非(p且q) 最近在看一本书啊《python工匠......》一个腾讯大佬写的,从这里面了解到这个东西,确实不错 1 1 # 德摩根定律 2 2 def func(): 3 3 a = 10 4 4 b = 20 5 5 if not a < 5 or not 阅读全文

posted @ 2022-11-14 11:20 默玖 阅读(443) 评论(0) 推荐(0) 编辑

编程思想
摘要:三大编程思想: POP:面向过程编程(Procedure Oriented Programming) OOP:面向对象编程(Object Oriented Programming) AOP:面向切面编程(Aspect Oriented Programming) 以下大部分内容引用腾讯云一位笔者,我也 阅读全文

posted @ 2022-10-18 15:40 默玖 阅读(43) 评论(0) 推荐(0) 编辑

实现斐波那契数列
摘要:面试现在就职的这家公司时,碰到过这题,反正当时就随便口述了下,也有点迷,现在整理下,就4行代码 方法有很多,这里权且就写下一种实现方式 概念 又叫黄金分割数列、13世纪由意大利数学家提出 实现 1 def func(n): 2 a, b = 0, 1 3 for i in range(n): 4 a 阅读全文

posted @ 2022-10-18 13:57 默玖 阅读(27) 评论(0) 推荐(0) 编辑

__call__用法简谈
摘要:python一切皆对象,从是否可调用层面讲,对象又可以分为可调用对象、不可调用对象 在本篇中,类中实现__call__双下方法,即将该类的实例变为可调用对象 普通类未实现__call__的方法,实例是不可调用的,先看 1 class Valley: 2 ... 3 4 5 if __name__ = 阅读全文

posted @ 2022-10-18 10:44 默玖 阅读(74) 评论(0) 推荐(0) 编辑

在*args, **kwargs上强制规定参数的调用约定
摘要:首先我们要知道任何关于函数调用签名的问题,都和inspect模块有着关系 这个知识点涉及到两个类: Signature、 Parameter创建一个签名对象,这是个重点 1 from inspect import Signature, Parameter 2 3 params = [Paramete 阅读全文

posted @ 2022-10-17 21:50 默玖 阅读(52) 评论(0) 推荐(0) 编辑

方法的多种调用方式
摘要:方法调用确实我们每个人都会,但是我觉得大家可能用的最多的就是那种常规的方式,这里呢,我要记录一下另外几种方式 1 from operator import attrgetter 2 from operator import methodcaller 3 4 5 class Valley: 6 def 阅读全文

posted @ 2022-10-17 11:55 默玖 阅读(65) 评论(0) 推荐(0) 编辑

__slots__
摘要:在类的层次上定义时,python给实例采用一种更加紧凑的内部表示来管理属性,而非字典,这样,我们只被允许访问__slots__内部的属性 这样定义会带来两点好处,然后具体的实践我在工作中目前运用的还很少,后面如果发现还有什么坑,我再来补充 1、创建大量实例时节省内存 2、访问属性快 1 class 阅读全文

posted @ 2022-10-16 17:37 默玖 阅读(33) 评论(0) 推荐(0) 编辑

上一页 1 2 3 下一页
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示