柳嘉希

硕士研究生毕业生

软件工程师 | 可扩展的API · 网络爬虫 · 数据集成 · Vibe代码清理专家

Python 与 Flask 复习:装饰器、生成器、拷贝、魔法方法、加密与 Token

Python 的核心知识经常出现在后端面试和自动化脚本开发中。

装饰器

装饰器本质上是接收函数并返回新函数的函数。

def log(fn):
    def wrapper(*args, **kwargs):
        print("before")
        result = fn(*args, **kwargs)
        print("after")
        return result
    return wrapper
 
@log
def hello():
    print("hello")

@log 等价于 hello = log(hello)

生成器

生成器使用 yield,可以按需产生值。

def count():
    yield 1
    yield 2
 
for item in count():
    print(item)

生成器适合处理大数据流,避免一次性加载全部内容。

深拷贝与浅拷贝

浅拷贝只复制第一层对象,内部引用仍共享。深拷贝会递归复制嵌套对象。

import copy
 
a = [[1], [2]]
b = copy.copy(a)
c = copy.deepcopy(a)

魔法方法

常见魔法方法包括:

  • __init__:初始化对象
  • __new__:创建对象
  • __del__:对象销毁时调用
  • __str__:字符串展示

Flask、加密与 Token

Flask 是轻量级 Python Web 框架。后端认证中常见 token 流程是:

  1. 用户登录
  2. 服务端验证账号密码
  3. 返回 token
  4. 后续请求携带 token
  5. 服务端校验 token 后返回资源

实际项目中必须配合 HTTPS、过期时间和权限控制。