Python 规则:带默认值的参数必须放在不带默认值的后面

Python 规则:带默认值的参数必须放在不带默认值的后面

python 复制代码
# 需求:查询新闻 -> 分页, skip: 跳过的记录数, limit: 返回的记录数 10
@app.get("/news/news_list")
async def get_news_list(
        skip: int = 0,
        limit: int # 错误示例
):
    return {"skip": skip, "limit": limit}

上面这段编译代码报错如下:

text 复制代码
SyntaxError: non-default argument follows default argument

原因:

Python 语法规定:带默认值的参数,必须放在 不带默认值的参数 后面!

正确写法(两种方案)

方案 1:给 limit 也加默认值(最常用、最推荐)

python 复制代码
@app.get("/news/news_list")
async def get_news_list(
    skip: int = 0,
    limit: int = 10  # 加个默认值
):
    return {"skip": skip, "limit": limit}

方案 2:把无默认值的放前面

python 复制代码
@app.get("/news/news_list")
async def get_news_list(
    limit: int,       # 无默认值放前面
    skip: int = 0     # 有默认值放后面
):
    return {"skip": skip, "limit": limit}

总结

有默认值的参数 → 必须放后面

无默认值的参数 → 必须放前面

FastAPI 接口参数也必须遵守这个 Python 基础语法

相关推荐
代码山河2 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
在世修行3 小时前
智学文枢:题目流水线
python·多线程·状态机·pyside
HideF3 小时前
Linux
linux·服务器·网络
梯度下降者3 小时前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
“AI国潮设计-小江”5 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
Ruiery5 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
benchmark_cc6 小时前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
伞伞悦读6 小时前
【第70期】Adam二阶矩不是方差:偏差校正、动量与AdamW完整实验
python
外收内放6 小时前
Python基础语法练习题(73)
java·前端·python
锋行天下7 小时前
Langgraph HITL 中断运行,用户输入后输出打字效果
人工智能·python