学习进度条3.20

所花时间:5小时
代码量:100
搏客量:1
了解到的知识点:

  1. 装饰器(Decorators)
    装饰器是一种用于修改或扩展函数行为的高阶函数。
    def my_decorator(func):
    def wrapper():
    print("Before function call")
    func()
    print("After function call")
    return wrapper

@my_decorator
def say_hello():
print("Hello!")

say_hello()
2. 生成器(Generators)
生成器是一种特殊的迭代器,使用yield关键字逐步生成值。

适合处理大数据流或无限序列。
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b

fib = fibonacci()
for _ in range(10):
print(next(fib))
3. 上下文管理器(Context Managers)
用于管理资源的分配和释放,通常与with语句一起使用。
class MyContextManager:
def enter(self):
print("Entering the context")
return self

def __exit__(self, exc_type, exc_val, exc_tb):
    print("Exiting the context")

with MyContextManager() as cm:
print("Inside the context")
4. 元类(Metaclasses)
元类是类的类,用于控制类的创建行为。

常用于框架开发或动态修改类定义。
class Meta(type):
def new(cls, name, bases, dct):
print(f"Creating class {name}")
return super().new(cls, name, bases, dct)

class MyClass(metaclass=Meta):
pass
5. 异步编程(Asyncio)
使用async和await关键字实现异步编程。

适合I/O密集型任务,如网络请求、文件读写等。
import asyncio

async def fetch_data():
print("Fetching data...")
await asyncio.sleep(2)
print("Data fetched")

async def main():
await asyncio.gather(fetch_data(), fetch_data())

asyncio.run(main())
6. 类型注解(Type Annotations)
使用类型注解提高代码可读性和可维护性。
def greet(name: str) -> str:
return f"Hello, {name}"
7. 并发与并行(Concurrency & Parallelism)
使用threading模块实现多线程,multiprocessing模块实现多进程。
import threading

def worker():
print("Worker thread")

threads = []
for _ in range(5):
t = threading.Thread(target=worker)
threads.append(t)
t.start()

for t in threads:
t.join()
8. 函数式编程(Functional Programming)
使用map、filter、reduce等高阶函数。
from functools import reduce

numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
even = list(filter(lambda x: x % 2 == 0, numbers))
total = reduce(lambda x, y: x + y, numbers)
9. 数据类(Data Classes)
使用dataclasses模块简化类的定义。
from dataclasses import dataclass

@dataclass
class Point:
x: int
y: int

p = Point(10, 20)
print(p)
10. 性能优化
使用timeit模块测试代码性能。
使用cProfile进行性能分析。
import timeit

def slow_function():
return sum(range(1000000))

print(timeit.timeit(slow_function, number=10))

posted @ 2025-03-20 22:00  仙人兵马俑  阅读(19)  评论(0)    收藏  举报