[*]抽象基类 (abstract base class)
抽象基类(ABC)用于定义接口规范,补充鸭子类型。例如:
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def sound(self):
pass
class Dog(Animal):
def sound(self):
return "Woof!"
使用 @abstractmethod 标记必须实现的方法。
[*]装饰器 (decorator)
装饰器用于修改函数/类的行为。例如日志装饰器:
def log(func):
def wrapper(*args):
print(f"调用 {func.__name__}")
return func(*args)
return wrapper
@log
def greet(name):
print(f"你好,{name}!")
等价于 greet = log(greet)
[*]GIL 全局解释器锁
CPython 中防止多线程竞争的核心机制。在计算密集型任务中建议使用多进程:
import multiprocessing
def heavy_task():
# 计算代码
pass
if __name__ == '__main__':
p = multiprocessing.Process(target=heavy_task)
p.start()
[*]类型提示 (type hint)
def greet(name: str) -> str:
return f"Hello, {name}"
使用 mypy 进行静态类型检查
[*]生成器 (generator)
使用 yield 实现惰性计算:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
print(next(fib))# 输出 0
print(next(fib))# 输出 1
遇到具体问题欢迎提出,我会用最规范的 BBCode 格式为您解答!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 {:5_110:}顶
页:
[1]