-
理解 Python 中的 *args 和 **kwargs
本站最新发布 Python从入门到精通|Python基础教程
试听地址 https://www.xin3721.com/eschool/pythonxin3721/




试听地址 https://www.xin3721.com/eschool/pythonxin3721/
Python是支持可变参数的,最简单的方法莫过于使用默认参数,例如:

当然,本文章的主题并不是讲默认参数,而是另外一种达到可变参数 (Variable Argument) 的方法:使用*args和**kwargs语法。其中,*args是可变的positional arguments列表,kwargs是可变的keyword arguments列表。并且,*args必须位于kwargs之前,因为positional arguments必须位于keyword arguments之前。
首先介绍两者的基本用法。
下面一个例子使用*args,同时包含一个必须的参数:

下面一个例子使用kwargs, 同时包含一个必须的参数和args列表:

args和**kwargs语法不仅可以在函数定义中使用,同样可以在函数调用的时候使用。不同的是,如果说在函数定义的位置使用args和**kwargs是一个将参数pack的过程,那么在函数调用的时候就是一个将参数unpack的过程了。下面使用一个例子来加深理解:

使用*args和**kwargs可以非常方便的定义函数,同时可以加强扩展性,以便日后的代码维护。
栏目列表
最新更新
数据工程师必须掌握的7个大数据实战项目
如何用Python获取微信好友信息,让你更加
python中星号变量的特殊用法
用 Python 自动监测 GitHub 项目更新
用Python进行数据清洗,这7种方法你一定要
如何理解 Python 中的面向对象编程?
Python 3 行代码 5 秒抠图的 AI 神器,根本无
python中星号变量的特殊用法
Python爬取前程无忧网站上python的招聘信息
用 Python 监控知乎和微博的热门话题
基于UDP的服务器端和客户端
再谈UDP和TCP
在socket编程中使用域名
网络数据传输时的大小端问题
socket编程实现文件传输功能
如何优雅地断开TCP连接?
图解TCP四次握手断开连接
详细分析TCP数据的传输过程
图解TCP数据报结构以及三次握手(非常详
TCP协议的粘包问题(数据的无边界性)
续 | 一套简单实用的SQL脚本,总有你需要
几道常见的SQL面试题,看你能答对几道?
你有一份经典SQL语句大全,请注意查收!
如何更优雅的写出你的SQL语句
当你执行JOIN ON时,数据库里发生了什么?
SQL 语句中 WHERE 条件后 写上1=1 是什么意思
常用SQL函数太简单?那是你没用过这些高
ORDER BY排序太简单?那是因为你还没用过
什么是数据库?
让我们一起查询数据