Enum ---- python enum class

创建方式

继承 Enum 类

直接继承 Enum

1
2
3
4
5
6
7
8
9
from enum import Enum, auto

class Color(Enum):
    green = 1
    red = 2

class Color2(Enum):
    green = auto()
    red = auto()

继承其他类

正确方法

1
2
3
class Color(str, Enum):
    green = 'green'
    red = 'red'

错误方法

1
2
3
class Color(Enum, str):
    green = 'green'
    red = 'red'

原因分析:

Loguru

demo

 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
from loguru import logger

# 添加log
logger.debug("That's it, beautiful and simple logging!")

# handler, 设置处理方式
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO")
logger.add("file_{time}.log")
# 写入文件方式
logger.add("file_1.log", rotation="500 MB")    # Automatically rotate too big file
logger.add("file_2.log", rotation="12:00")     # New file is created each day at noon
logger.add("file_3.log", rotation="1 week")    # Once the file is too old, it's rotated

logger.add("file_X.log", retention="10 days")  # Cleanup after some time

logger.add("file_Y.log", compression="zip")    # Save some loved space

# 类似 format 的格式
logger.info("If you're using Python {}, prefer {feature} of course!", 3.6, feature="f-strings")

# context 形式捕捉 log
@logger.catch
def my_function(x, y, z):
    # An error? It's caught anyway!
    return 1 / (x + y + z)

# 支持 html 标签格式化
logger.add(sys.stdout, colorize=True, format="<green>{time}</green> <level>{message}</level>")

# 为 backtrace 异常调用栈,单独设置 log handler
logger.add("out.log", backtrace=True, diagnose=True)  # Caution, may leak sensitive data in prod

概念

Sink

参考: