摘要:
除了可以用在方法上,其实python的装饰器也可以作用于类上,在不改变类的情况下,给类增加一些额外的功能. # 下面是一个重写了特殊方法 __getattribute__ 的类装饰器,可以打印日志: def log_getattribute(cls): origin_getattribute=cls 阅读全文
摘要:
在生产环境中,某些环节因为IO的原因,可能会失败,为了解决这种代码逻辑上没有问题,但是只能通过多执行几次才能跑成功的问题,特地设计了这种重试模块. 这个装饰器可以接收两个参数:最大重试次数和重试间隔 import functools import time # 最大重试次数/重试间隔(单位秒) de 阅读全文
摘要:
class BSTMapNode(object): def __init__(self, key, value): self.key = key self.value = value self.left = None self.right = None # 以列表作为底层存储 class BSTMa 阅读全文
摘要:
python没有实现专门的堆数据结构,但是提供了一系列方法,可以操作在list上,实现堆的功能 import heapq # 将x压入堆中 heapq.heappush(heap, x) # 从堆中弹出最小的元素 heapq.heappop(heap) # 让列表具备堆特征 heapq.heapif 阅读全文
摘要:
stack一般用来存储已有的状态,对于解决迷宫问题最是合适. 迷宫问题没有什么好的解决办法,只能采用蛮力穷举的办法,要点是已经走过的路径(包括可行路线和不可行路线)要进行标记,这样可以避免原地死循环 # 用list实现一个stack class Stack(object): def __init__ 阅读全文
摘要:
一.生成器简介 在python中,带yield的方法不再是普通方法,而是生成器,它的执行顺序不同与普通方法. 普通方法的执行是从头到尾,最后return返回,或者没有返回值 生成器是到yield就返回yield之后的值,然后阻塞,等待next()/send()继续调起生成器 二.next()/sen 阅读全文
摘要:
import sys.process._ "ipconfig /all"! 阅读全文
摘要:
import logging # 创建一个logger logger = logging.getLogger() logger.setLevel(logging.INFO) # 创建一个handler,用于写入日志文件 fh = logging.FileHandler('log.txt', mode 阅读全文
摘要:
from typing import TypeVar, Generic T = TypeVar('T') class Stack(Generic[T]): def __init__(self) -> None: # Create an empty list with items of type T 阅读全文
摘要:
class Operator(object): def __init__(self, task_id): self.task_id = task_id def __rshift__(self, other): if isinstance(other, Operator): print('%s=>%s 阅读全文