1. 关键字 async、await
python中,async和await两个关键字用于定义异步操作。
async: 定义异步函数,表明该函数是协程,可以在其中使用await来等待其他异步操作完成。异步函数的执行不会阻塞事件循环,而是会立即返回一个协程对昂。await: 用于在异步函数内等待其他协程执行完成/。遇到await时,事件循环会挂起当前的协程,并执行其它任务,直到协程完成后再恢复。

费大厨辣椒炒肉真是太好吃了!
python中,async和await两个关键字用于定义异步操作。
async: 定义异步函数,表明该函数是协程,可以在其中使用await来等待其他异步操作完成。异步函数的执行不会阻塞事件循环,而是会立即返回一个协程对昂。await: 用于在异步函数内等待其他协程执行完成/。遇到await时,事件循环会挂起当前的协程,并执行其它任务,直到协程完成后再恢复。Python字典(dict)是一种可变容器模型,用于存储键值对(key-value)映射关系。它是Python中最重要、最常用的数据结构之一。
主要特性:
目前的开源项目,存在两种主流的prompt标记符号。下面以两个自动优化提示词的项目为例子:
\#: prompt_optimizer<>: coze_loop个人感觉还是<>效果更好一点,可以明确的划定一个指令块的区间,只是可读性不太友好
python的垃圾回收机制主要分为三大块:
python通过引用计数器来进行垃圾回收。每个对象的基础结构里都维护了引用计数字段,如果他的引用数量是0,则会触发回收机制。
// 这是Python对象在C层面的基础结构
typedef struct _object {
Py_ssize_t ob_refcnt; // 引用计数
PyTypeObject *ob_type; // 类型指针
// ... 其他字段根据类型不同而变化
} PyObject;
在python中,一切皆对象,包括类本身。元类是创建类对象的类。就像类是用来创建实例的模板一样,元类是创建类的模板。
class MyClass:
pass
obj = MyClass()
print(f"实例的类型: {type(obj)}") # <class '__main__.MyClass'>
print(f"类的类型: {type(MyClass)}") # <class 'type'>
print(f"type的类型: {type(type)}") # <class 'type'>
# 所以:
# 实例 obj 是 MyClass 类的对象
# 类 MyClass 是 type 类的对象
# 元类 type 是 type 类的对象(type是自身的实例)
上下文管理器(Context Manager)是Python中用于管理资源(如文件、数据库连接、锁等)的对象,它定义了在进入和退出代码块时要执行的操作。上下文管理器通过实现 __enter__() 和 __exit__() 方法来工作
with语句提供了一种优雅的方式来管理资源,确保资源被正确初始化和清理,即使在发生异常的情况下也是如此。它的主要优势包括:
with块内发生异常,清理代码也会被执行try...finally块泛型编程允许我们编写与特定类型无关的代码,提高代码的复用性和类型安全性。在Python中,这主要通过TypeVar来实现,它可以创建类型变量,在函数、类或方法中作为占位符类型使用
TypewVar的作用
迭代器实现了迭代器协议,是一个可以记住遍历位置的对象,必须提供两个方法:
__iter__(): 返回迭代器对象本身__next__(): 返回下一个值,如果没有了就排除StopIteration异常生成器是一种使用yield关键字,更简单创建迭代器的方式
| 特性 | 迭代器 | 生成器 |
|---|---|---|
| 创建方式 | 实现__iter__和__next__ | 使用yield或生成器表达式 |
| 代码复杂度 | 相对复杂 | 简单 |
| 内存使用 | 取决于实现 | 极低,懒加载,只会在需要的时候生成值,然后暂停直到下次请求 |
| 状态保持 | 手动维护 | 自动保持 |
| 适用场景 | 复杂迭代 | 简单迭代 |
闭包是函数式编程的重要概念,也是理解装饰器的基础。
闭包 = 内部函数 + 外部变量, 是一个能"记住"它被创建时的环境的函数,即使那个环境已经不再存在
闭包三要素: