0

0

默认参数是什么_如何为函数设置默认值【教程】

紅蓮之龍

紅蓮之龍

发布时间:2026-01-25 13:25:02

|

534人浏览过

|

来源于php中文网

原创

python函数默认参数在定义时求值一次,可变对象作默认值会导致状态污染;应使用none判空并重建对象,且无默认值参数须在有默认值参数之前。

默认参数是什么_如何为函数设置默认值【教程】

Python 函数的默认参数不是“可有可无的装饰”,而是直接影响调用逻辑和对象生命周期的关键机制;设错默认值(比如用 []{})会导致意外的跨调用状态污染。

默认参数在函数定义时就完成求值

Python 中所有默认参数表达式,在函数被定义(def 语句执行)时即求值一次,而不是每次调用时重新计算。这意味着可变对象(如列表、字典)作为默认值会持续复用。

  • 错误写法:def append_to(items=[], item="x"): items.append(item); return items —— 多次调用会累积元素
  • 正确写法:def append_to(items=None, item="x"): items = items or []; items.append(item); return items
  • 更推荐写法:def append_to(items=None, item="x"): items = [] if items is None else items; items.append(item); return items

None 是最安全的默认占位符

当需要“无值”语义且允许传入空列表、空字典等合法值时,None 是唯一可靠的选择。它不参与业务逻辑,只作存在性判断。

家电小商城网站源码1.0
家电小商城网站源码1.0

家电公司网站源码是一个以米拓为核心进行开发的家电商城网站模板,程序采用metinfo5.3.9 UTF8进行编码,软件包含完整栏目与数据。安装方法:解压上传到空间,访问域名进行安装,安装好后,到后台-安全与效率-数据备份还原,恢复好数据后到设置-基本信息和外观-电脑把网站名称什么的改为自己的即可。默认后台账号:admin 密码:132456注意:如本地测试中127.0.0.1无法正常使用,请换成l

下载
  • 避免用 False0"" 做默认值判据,它们可能是有效输入
  • 检查必须用 is None,而非 == None(虽通常等效,但风格和语义更准确)
  • 如果函数内部要修改默认对象,务必先做深拷贝或重建,例如:config = copy.deepcopy(default_config) if config is None else config

位置参数不能跟在带默认值的参数后面

Python 语法强制要求:所有不带默认值的形参必须出现在带默认值的形参之前。否则报 SyntaxError: non-default argument follows default argument

  • 错误示例:def bad(a=1, b): pass → 直接语法错误
  • 正确顺序:def good(a, b=1, c="x"): pass
  • 混合使用时注意调用歧义:若同时支持位置与关键字传参,建议用 * 强制关键字参数(如 def f(x, *, y=1)),避免调用方误传顺序

默认参数看着简单,真正麻烦的是它把“定义时”和“运行时”的边界悄悄抹平了;只要记住“可变对象别直接当默认值”“没值就用 None 判”“顺序不能乱”,就能避开绝大多数坑。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

846

2023.08.22

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

846

2023.08.22

append用法
append用法

append是一个常用的命令行工具,用于将一个文件的内容追加到另一个文件的末尾。想了解更多append用法相关内容,可以阅读本专题下面的文章。

349

2023.10.25

python中append的用法
python中append的用法

在Python中,append()是列表对象的一个方法,用于向列表末尾添加一个元素。想了解更多append的更多内容,可以阅读本专题下面的文章。

1080

2023.11.14

python中append的含义
python中append的含义

本专题整合了python中append的相关内容,阅读专题下面的文章了解更多详细内容。

186

2025.09.12

append用法
append用法

append是一个常用的命令行工具,用于将一个文件的内容追加到另一个文件的末尾。想了解更多append用法相关内容,可以阅读本专题下面的文章。

349

2023.10.25

python中append的用法
python中append的用法

在Python中,append()是列表对象的一个方法,用于向列表末尾添加一个元素。想了解更多append的更多内容,可以阅读本专题下面的文章。

1080

2023.11.14

python中append的含义
python中append的含义

本专题整合了python中append的相关内容,阅读专题下面的文章了解更多详细内容。

186

2025.09.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 4.9万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号