python中的语法高级用法总结,看看你用过多少种?
Python高级语法速查表: 数据结构:推导式(列表/集合/字典)、生成器表达式、解包操作(*rest取中间值)。 函数:可变参数(*args, **kwargs)、lambda、装饰器、偏函数(functools.partial)。 迭代器&生成器:yield惰性生成、yield from委托迭代。 面向对象:@property、类/静态方法、魔术方法(__add__)、dataclas
Python 中常见的高级语法用法 做一个系统总结,分成几个方面:
1. 数据结构相关
-
列表推导式 / 集合推导式 / 字典推导式
squares = [x*x for x in range(10)] unique = {x % 3 for x in range(10)} mapping = {x: x*x for x in range(5)}简洁高效,替代循环生成。
-
生成器表达式(惰性求值,节省内存)
gen = (x*x for x in range(10)) next(gen) -
解包操作
a, b, *rest = [1, 2, 3, 4, 5] # a=1, b=2, rest=[3,4,5] first, *_, last = [10, 20, 30, 40] # 取首尾
2. 函数高级用法
-
可变参数
def f(*args, **kwargs): print(args, kwargs) f(1, 2, x=3, y=4) -
lambda 表达式
add = lambda x, y: x+y sorted(data, key=lambda x: x.age) -
函数作为一等公民(可传参、返回、赋值)
def make_adder(n): return lambda x: x+n add5 = make_adder(5) -
装饰器(修改或增强函数功能)
def log(func): def wrapper(*args, **kwargs): print(f"调用 {func.__name__}") return func(*args, **kwargs) return wrapper @log def hello(): print("hi") -
偏函数(
functools.partial)from functools import partial pow2 = partial(pow, 2) # 相当于 pow(2, y)
3. 迭代器 & 生成器
-
迭代器协议:实现
__iter__和__next__。 -
生成器函数(
yield):节省内存,按需生成数据。def count_up(n): for i in range(n): yield i -
yield from(委托生成器)
def chain(*iterables): for it in iterables: yield from it
4. 面向对象高级语法
-
@property 装饰器(属性方法化)
class Person: def __init__(self, age): self._age = age @property def age(self): return self._age -
类方法 / 静态方法
class MyClass: @classmethod def create(cls): return cls() @staticmethod def util(): print("工具方法") -
魔术方法(运算符重载等)
class Vector: def __init__(self, x, y): self.x, self.y = x, y def __add__(self, other): return Vector(self.x+other.x, self.y+other.y) def __repr__(self): return f"Vector({self.x}, {self.y})" -
数据类 dataclass(自动生成 init、repr、eq 等方法)
from dataclasses import dataclass @dataclass class Point: x: int y: int
5. 上下文管理器
-
with 语句(自动资源管理)
with open("file.txt") as f: data = f.read() -
自定义上下文管理器(实现
__enter__/__exit__)class MyRes: def __enter__(self): print("enter"); return self def __exit__(self, exc_type, exc, tb): print("exit") -
contextlib 简化
from contextlib import contextmanager @contextmanager def my_cm(): print("enter") yield print("exit")
6. 函数式编程风格
-
map / filter / reduce
from functools import reduce nums = [1, 2, 3] print(list(map(lambda x: x*2, nums))) print(list(filter(lambda x: x>1, nums))) print(reduce(lambda a, b: a+b, nums)) -
列表/迭代器组合工具(itertools)
import itertools for p in itertools.permutations([1,2,3], 2): print(p)
7. 异步与并发
-
async/await(异步协程)
import asyncio async def foo(): await asyncio.sleep(1) print("done") asyncio.run(foo()) -
多线程 / 多进程(
threading,multiprocessing)-
适合 I/O 密集:线程
-
适合 CPU 密集:进程
-
8. 其他高级技巧
-
类型注解(Type Hints)
def add(x: int, y: int) -> int: return x+y -
海象运算符 := (Python3.8+)
if (n := len([1,2,3])) > 2: print(n) -
解构合并字典
d1, d2 = {"a":1}, {"b":2} merged = {**d1, **d2} -
枚举类
from enum import Enum class Color(Enum): RED = 1 BLUE = 2 -
元类(metaclass):动态修改类的行为,高级框架常用(如 Django ORM)。
✅ 以上就是 Python 的常见高级语法用法总结,你可以把它当速查表。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)