我刚刚开始使用 Python 的数据类,我想确认我正在以正确的方式声明类变量。
使用常规的 Python 类
class Employee:
raise_amount = .05
def __init__(self, fname, lname, pay):
self.fname = fname
self.lname = lname
self.pay = pay
Run Code Online (Sandbox Code Playgroud)
使用 python 数据类
@dataclass
class Employee:
fname: str
lname: str
pay: int
raise_amount = .05
Run Code Online (Sandbox Code Playgroud)
我所指的类变量是raise_amount. 这是使用数据类正确声明的类变量吗?或者有更好的方法吗?
我已经测试了数据类实现,它提供了预期的功能,但我主要想知道我的实现是否遵循最佳实践。
有谁知道返回 loguru 记录器的正确类型提示?使用loguru.Logger通过 mypy 检查,但是当get_logger调用该函数时出现错误AttributeError: module 'loguru' has no attribute 'Logger'
import copy
from pathlib import Path
from sys import stdout
from loguru import logger
import loguru
def get_logger(log_path: Path) -> loguru.Logger:
logger.remove()
logger_ = copy.deepcopy(logger)
logger_.add(stdout)
logger_.add(f"{log_path}.log")
return logger_
Run Code Online (Sandbox Code Playgroud)