如何使用python函数的不定长参数?

舞姬之光
发布: 2025-11-28 20:27:55
原创
741人浏览过
Python函数通过args和kwargs实现不定长参数,args接收任意位置参数并存为元组,kwargs接收任意关键字参数并存为字典,二者结合可灵活处理参数数量和类型不确定的场景。

如何使用python函数的不定长参数?

Python函数的不定长参数用来接收任意数量的参数,适合处理调用时参数个数不确定的情况。主要通过 *args**kwargs 实现,它们能灵活收集位置参数和关键字参数。

使用 *args 接收任意位置参数

*args 可以捕获所有未被匹配的位置参数,存储为一个元组。

例如:
  • 定义函数时写成 def func(*args),调用时传入多个值,比如 func(1, 2, 3)
  • 在函数内部,args 是一个元组,可以遍历或索引使用
  • 如果还有固定参数,*args 必须放在最后
示例代码:
def show_numbers(*args):
    for num in args:
        print(num)
<p>show_numbers(10, 20, 30)</p><h1>输出:</h1><h1>10</h1><h1>20</h1><h1>30</h1><p>
登录后复制

立即学习Python免费学习笔记(深入)”;

使用 **kwargs 接收任意关键字参数

**kwargs 捕获所有未被匹配的关键字参数,保存为字典。

  • 函数定义写成 def func(**kwargs),调用时使用键值对,如 func(name="Alice", age=25)
  • 在函数内,kwargs 是字典,可用 .items() 遍历
  • **kwargs 也要放在参数列表最后
示例代码:
def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")
<p>print_info(name="Bob", city="Beijing", job="Engineer")</p>
                    <div class="aritcle_card">
                        <a class="aritcle_card_img" href="/xiazai/learn/2593">
                            <img src="https://img.php.cn/upload/webcode/000/000/000/5a2b9a88e20e5831.png" alt="动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版">
                        </a>
                        <div class="aritcle_card_info">
                            <a href="/xiazai/learn/2593">动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版</a>
                            <p>动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包</p>
                            <div class="">
                                <img src="/static/images/card_xiazai.png" alt="动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版">
                                <span>508</span>
                            </div>
                        </div>
                        <a href="/xiazai/learn/2593" class="aritcle_card_btn">
                            <span>查看详情</span>
                            <img src="/static/images/cardxiayige-3.png" alt="动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版">
                        </a>
                    </div>
                <h1>输出:</h1><h1>name: Bob</h1><h1>city: Beijing</h1><h1>job: Engineer</h1><p>
登录后复制

立即学习Python免费学习笔记(深入)”;

同时使用 *args 和 **kwargs

当需要同时处理位置参数和关键字参数时,可以把两者组合使用。

  • 参数顺序必须是:普通参数 → *args → **kwargs
  • 这样能覆盖最全的调用方式
示例:
def log_call(prefix, *args, **kwargs):
    print(f"Log: {prefix}")
    print("Positional args:", args)
    print("Keyword args:", kwargs)
<p>log_call("Start", 1, 2, name="Tom", action="login")</p><h1>输出:</h1><h1>Log: Start</h1><h1>Positional args: (1, 2)</h1><h1>Keyword args: {'name': 'Tom', 'action': 'login'}</h1><p>
登录后复制

立即学习Python免费学习笔记(深入)”;

基本上就这些。掌握 *args 和 **kwargs 能写出更通用、可扩展的函数。

以上就是如何使用python函数的不定长参数?的详细内容,更多请关注php中文网其它相关文章!

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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