批量替换请求头
(.*?):(.*)
'$1':'$2',
# 用法
#*kwargs
demo(a=(Exception, RequestHandler), name={"age": "12"})
demo(**kwargs):
#结果为 a name
print(*kwargs)
#调用父类方式
def _handle_request_exception(self, e: BaseException) -> None:
super(RequestHandler, self)._handle_request_exception(e)
#prefix 前缀
#
class Demo(object):
def __init__(self):
self._a = None
self._x = None
@property
def a(self):
return self._a
@a.setter
def a(self, value):
self._a = value
def setx(self, value):
self._x = value
def getx(self):
return self._x
x = property(fset=setx, fget=getx, doc='this is x')
property(set_func,get_func,...)
from functools import wraps
@wraps() #保证传递进来的函数名字及__name__ 为自身方法名
import traceback
try:
c = 1 / 0
except Exception as e:
#将异常以字符串形式打印出来
print(traceback.format_exc())
#线程池
import time
from concurrent.futures import ThreadPoolExecutor
def ceshi(times):
time.sleep(times)
print(f"等{times}秒")
return times
executor = ThreadPoolExecutor(max_workers=10)
task1 = executor.submit(ceshi, (2,))
task2 = executor.submit(ceshi, (3,))
task3 = executor.submit(ceshi, (1,))
# 执行顺序 warps(前0.5) ----> wraps01(前0.5)----->demo----->wraps01(后0.5)-------->warps(后0.5) !!!!!!
def wraps(name):
print('----A-----')
def wraps01(*args, **kwargs):
print('----A1-----')
name(*args, **kwargs)
print('----A2-----')
return wraps01
def wraps_a(name):
print('----B-----')
def wraps_b(*args, **kwargs):
print('----B1-----')
name(*args, **kwargs)
print('----B2-----')
return wraps_b
@wraps
@wraps_a
def demo():
print('1234')
demo()
"""
----B-----
----A-----
----A1-----
----B1-----
1234
----B2-----
----A2-----
"""