Python
Audreybiubiu
这个作者很懒,什么都没留下…
展开
-
python 自定义异常捕获
我们在处理程序异常的时候,可能需要自己定义一些传入的message,自己定义一些error对应的error_code,在后续做异常统计的时候可以有自定义的数据,这时候其实我们可以自定义异常捕获类。异常类一般都是继承自Exception,自定义异常类如下:class PangolinException(Exception): """ Customized Exception for Pangolin Style Inspection Test Exception raised fo原创 2022-03-26 13:03:59 · 1764 阅读 · 0 评论 -
python——multimethod包 多分派
介绍:multimethod(又名multiple dispatch、generic function)是python提供的一个功能包,它可以实现singledispatch类似的功能,而对于相同类型的返回不用多次注册使用方法:1、使用@multimethod标记处理object类型的基函数(base_function)2、各个专门函数使用@<<base_function>>.register装饰3、专门函数的名称无关紧要,可以直接选择用_作为函数名4、为每个需要处理的类原创 2022-03-26 11:52:59 · 1752 阅读 · 0 评论 -
python——singledispatch 单分派
介绍:singledispathch 是Pyhton 在functools里的方法,用作装饰器,它可以把整体方案拆成多个模块,甚至可以为你无法修改的类提供专门的函数,使用@singledispatch装饰的函数会变成泛函数。好处:类似于java的重载机制,可以在一个类中为同一个方法定义多个重载变体,比在一个函数中使用一长串的if/elif好原创 2022-03-26 11:35:31 · 2099 阅读 · 0 评论 -
python 检查代码规范,类型标注
python提供了一些包可以用来format代码,检查代码规范,检查类型标注是否正确等。1、blackformat代码,cd 到对应的目录,执行black -l 120 . 2、flake8检查代码规范,执行flake8 . 3、mypy检查类型标注,执行mypy . 如果是在有很多文件的工程里,可以创建Makefile文件,将这些命令包装起来,可以指定有效的目录范围,下列代码规定只对applib/common下的代码生效SHELL = bashcheck: fmt原创 2022-03-20 15:22:23 · 977 阅读 · 0 评论 -
python 枚举类
在使用Python的过程中,经常会需要用到映射关系,一般想到的是使用dict,比如fruits_map = { "apple": "red", "banana": "yellow", "watermelon": "green"}这时候,我们如果知道key,就能很快知道对应的value,但如果我们同时也想通过value,获取key呢,这时候用dict就显得不太合适了,需要遍历其中的key,判断其value是否和想要的相等,或者需要再写了一个dict。对于这种情况,其实使用枚举类就可以较好的解决原创 2022-03-18 10:13:18 · 345 阅读 · 0 评论 -
python 实现with语句
with 语句的目的是简化 try/finally 模式。这种模式用于保证一段代码运行完毕后执行某 项操作,即便那段代码由于异常、return 语句或 sys.exit() 调用而中止,也会执行指定的 操作。finally 子句中的代码通常用于释放重要的资源,或者还原临时变更的状态。最常见的例子是确保关闭文件对象:with open('mirror.py') as fp: src = fp.read(60)print(len(src)) # 60print(fp) #<_io.原创 2022-03-18 08:56:19 · 1360 阅读 · 0 评论 -
python 对可迭代对象的某些字段进行排列组合
在使用python的过程中,可能会遇到需要对list或者dict中的其中几个字段进行排列组合的情况,比如对于下面的example,想要得到最终res1-res6的结果,该如何实现呢?example = {"name":"Alex", "age":[18,19,20],"height":["175","180"]}res1 = {"name":"Alex", "age":18,"height":"175"}res2 = {"name":"Alex", "age":18,"height":"180"}r原创 2022-03-17 08:59:28 · 431 阅读 · 0 评论 -
自动重试的装饰器
经常会遇到一些需要重试的函数,在这种情况下,使用装饰器是比较合理的解决方案def auto_retry(times=3, low=1, high=2): """ automatically retry function wrapper :param times: retry times, default 3 times :type times: int :param low: minimum random waiting time, default 1 :t原创 2022-03-17 08:12:29 · 324 阅读 · 0 评论 -
python 开启多线程
为了加快程序运行速度,对相同功能的一些执行语句,python可以通过ThreadPool做到,重要的函数为:pool = ThreadPool(processes=3)pool.apply_async(func, args=(**krags))pool.close()pool.join()from multiprocessing.pool import ThreadPooldef parallel(self, cls, driven_data_key=None): if no...原创 2022-03-12 21:52:30 · 1826 阅读 · 0 评论