return、rasie、yiled的区别
一、return函数返回结果 终止执行唯一用途是从函数中返回指定结果并立即终止函数的执行函数内return之后的代码不会被执行二、raise主动触发异常 终止异常传播前的执行主动手动抛出指定的异常对象中断当前的程序执行流程若抛出的异常未被try...except捕获程序会直接崩溃并输出异常信息。三、yield生成器产出值 挂起函数保留状态作用是产出一个值给生成器的调用方同时挂起当前函数的执行状态保留所有变量、执行位置待下一次通过next()或for循环触发时从挂起的位置继续执行直到再次遇到yield或函数结束。1.流式输出示例import uvicorn from fastapi import FastAPI import asyncio from fastapi.responses import StreamingResponse from pydantic import BaseModel import json app FastAPI(titleSSE 流式响应示例) class QueryModel(BaseModel): a: str async def async_query(a: str) - str: await asyncio.sleep(3) return f查询结果参数{a}查询成功 # ✅ 正确aa 返回生成器对象不 await async def aa(a: str): 中间层函数 - 只负责创建和返回生成器 不要 await不要 await不要 await # 可以在这里做参数校验、日志记录、权限检查等 print(f[中间层] 收到参数: {a}) bhaha # 直接返回生成器对象不执行它 return event_generator(a,b) async def event_generator(a: str,b:str): print(b) SSE 异步生成器 yield fdata: {json.dumps({status: 开始查询, progress: 0})}\n\n # 立即刷新缓冲区 await asyncio.sleep(0) # 分阶段发送进度 for i in range(1, 4): await asyncio.sleep(1) yield fdata: {json.dumps({status: f查询中...{i}秒, progress: i * 33})}\n\n result await async_query(a) yield fdata: {json.dumps({status: 完成, result: result, progress: 100})}\n\n app.post(/select) async def select(q: QueryModel): # ✅ 从中间层获取生成器 generator await aa(q.a) # await aa() 是等待 aa 函数本身不是等待生成器 return StreamingResponse( generator, # 传入生成器对象 media_typetext/event-stream, # ← 2. 告诉浏览器这是SSE流 headers{ # ← 3. 禁用所有缓冲机制 Cache-Control: no-cache, no-transform, Connection: keep-alive, X-Accel-Buffering: no, } ) if __name__ __main__: uvicorn.run(main:app, host127.0.0.1, port8000)

相关新闻

OFA模型生成效果展示:复杂场景问答能力测试

OFA模型生成效果展示:复杂场景问答能力测试

OFA模型生成效果展示:复杂场景问答能力测试 1. 复杂场景下的视觉理解挑战 日常生活中,我们看到的图像很少是教科书式的理想状态。一张照片可能被部分遮挡,画面可能因快速移动而模糊,光线条件可能极差,或者关键信息被…

2026/7/4 1:31:49 阅读更多 →
Qwen3-ASR-1.7B多语言落地教程:外贸公司客户来电自动分类(英语/阿拉伯语/西班牙语)

Qwen3-ASR-1.7B多语言落地教程:外贸公司客户来电自动分类(英语/阿拉伯语/西班牙语)

Qwen3-ASR-1.7B多语言落地教程:外贸公司客户来电自动分类(英语/阿拉伯语/西班牙语) 1. 为什么外贸公司急需这款语音识别模型 你是不是也遇到过这样的情况:每天上百通海外客户来电,客服刚接起电话,还没来得…

2026/7/4 15:21:24 阅读更多 →
Span<T>到底多快?3个真实Benchmark对比Array/List,性能提升470%的真相揭晓!

Span<T>到底多快?3个真实Benchmark对比Array/List,性能提升470%的真相揭晓!

第一章&#xff1a;Span<T>的本质与核心价值 <T> 是 .NET 中一种零分配、栈安全的内存切片类型&#xff0c;它不拥有数据所有权&#xff0c;仅提供对连续内存区域&#xff08;如数组、堆栈内存或本机内存&#xff09;的安全、高效只读或可写视图。其本质是结构体&…

2026/5/17 2:32:18 阅读更多 →

最新新闻

光伏逆变器LVRT技术:Boost+NPC拓扑设计与控制策略

光伏逆变器LVRT技术:Boost+NPC拓扑设计与控制策略

1. 光伏逆变器低电压穿越技术概述 光伏发电系统在电网电压骤降时能否保持并网运行&#xff0c;直接关系到整个电力系统的稳定性。低电压穿越(LVRT)技术就是让逆变器在电网电压跌落时&#xff0c;不仅不脱网还能向电网提供无功功率支撑的关键能力。传统方案中&#xff0c;当检测…

2026/7/5 10:33:10 阅读更多 →
Allen Bradley 80190-378-51/12控制器板功能与应用解析

Allen Bradley 80190-378-51/12控制器板功能与应用解析

1. Allen Bradley 80190-378-51/12控制器板概述Allen Bradley 80190-378-51/12控制器板是罗克韦尔自动化旗下Allen-Bradley品牌推出的一款工业级控制电路板。作为自动化控制系统中的核心组件&#xff0c;它主要负责信号采集、逻辑运算和设备控制等功能。这款控制器板采用成熟的…

2026/7/5 10:31:10 阅读更多 →
解锁网易云音乐加密格式:ncmdump工具的全面应用指南

解锁网易云音乐加密格式:ncmdump工具的全面应用指南

解锁网易云音乐加密格式&#xff1a;ncmdump工具的全面应用指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经遇到过这样的困扰&#xff1a;在网易云音乐下载的歌曲只能在特定应用内播放&#xff0c;无法在其他设备或播…

2026/7/5 10:31:10 阅读更多 →
I型NPC三电平逆变器SVPWM仿真设计与控制策略

I型NPC三电平逆变器SVPWM仿真设计与控制策略

1. I型NPC三电平逆变器SVPWM仿真设计概述在电力电子领域&#xff0c;三电平逆变器因其输出电压谐波含量低、开关损耗小等优势&#xff0c;已成为中高压大功率应用的首选拓扑结构。I型NPC&#xff08;Neutral Point Clamped&#xff09;三电平逆变器通过钳位二极管将直流母线中点…

2026/7/5 10:29:09 阅读更多 →
电源环设计:PCB供电优化的核心技术解析

电源环设计:PCB供电优化的核心技术解析

1. 电源环是什么&#xff1f;电源环&#xff08;Power Ring&#xff09;是电子设备中一种特殊的环形电源分配结构。我第一次接触这个概念是在设计一块高密度PCB板时&#xff0c;当时为了解决多芯片供电的电压跌落问题&#xff0c;老工程师建议我试试电源环布局。简单来说&#…

2026/7/5 10:27:09 阅读更多 →
TrollStore 核心原理与实战:利用 CoreTrust 漏洞实现 iOS 应用永久签名与权限提升

TrollStore 核心原理与实战:利用 CoreTrust 漏洞实现 iOS 应用永久签名与权限提升

1. 项目概述&#xff1a;TrollStore是什么&#xff0c;以及它解决了什么痛点如果你是一名iOS用户&#xff0c;尤其是那些喜欢折腾、希望摆脱App Store束缚的玩家&#xff0c;那么“签名”这个词对你来说一定不陌生。从早期的Cydia Impactor到后来的AltStore&#xff0c;再到各种…

2026/7/5 10:27:09 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻