Python中函数参数匹配模型详解
作者:若数 发布时间:2022-01-01 20:39:59
标签:python,函数,参数,模型
当我们的函数接收参数为任意个,或者不能确定参数个数时,我们,可以利用 * 来定义任意数目的参数,这个函数调用时,其所有不匹配的位置参数会被赋值为元组,我们可以在函数利用循环或索引进行使用
def f(*args):
# 直接打印元组参数
print(args)
print('-'*20)
# 循环打印元组参数
[print(i) for i in args]
...
# 传递一个参数
f(1)
print('='*20)
# 传递5个参数
f(1, 2, 3, 4, 5)
示例结果:
(1,)
--------------------
1
====================
(1, 2, 3, 4, 5)
--------------------
1
2
3
4
5
###任意参数 ** 而 ** 是用于收集关键字参数并将这些参数传递给一个新的字典,即在函数中我们可以利用处理字典的方式处理这些参数
def f(**args):
# 直接打印字典参数
print(args)
for key, value in args.items():
print('{}: {}'.format(key, value))
f(a=1)
print('='*20)
f(a=1, b=2, c=3)
示例结果:
{'a': 1}
a: 1
====================
{'a': 1, 'b': 2, 'c': 3}
a: 1
b: 2
c: 3
任意参数混合
我们可以混合一般参数、 * 参数以及 ** 参数完成实现更加复杂的调用方式。
def f(a, *targs, **dargs):
print(a, targs, dargs)
f(1,2,3, x=1, y=2)
示例结果:
1 (2, 3) {'x': 1, 'y': 2}
可以看到这种调用方式并不那么直观,甚至有些“混淆视听”,那么怎么在复杂任意参数的调用时,是的在函数调用更加直观明了?
解包参数
我们可以在函数调用时,直接利用*和**进行参数传递,然后让函数自动解包,也就类似之前的序列解包,使用调用时更加的直观。
def f(a, b, c, d):
print(a, b, c, d)
f(1, *(2, 3), **{'d': 4})
示例结果:
1 2 3 4
总结
以上所述是小编给大家介绍的Python中函数参数匹配模型详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
来源:https://juejin.im/post/5cfb83c96fb9a07ea33c07cb
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 见过很多网站,在设计的时候给了用户很大的自由度,我个人并不赞同这种做法。最简单的例子,圈网。我在研究圈网的时候注册完成后圈网给了我一个搜索框
- php中可以把函数名通过字符串的方式传递给一个变量,然后通过此变量动态调用函数下面是一个简单的动态函数调用范例<html><
- 破解滑块验证码的思路主要有2种:获得一张完整的背景图和一张有缺口的图片,两张图片进行像素上的一一对比,找出不一样的坐标。获得一张有缺口的图片
- 概述Base64 是网络上最常见的用于传输 8Bit 字节码的编码方式之一,Base64 就是一种基于 64 个可打印字符来表示二进制数据的
- 问题,在一个程序内构建好了一个图,运行完之后想重新使用这个图进行计算,或者想同时在train完的时候做test,就会提示***变量已存在。解
- 这篇文章主要介绍了Python魔法方法 容器部方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上。
- 在pycharm中设置python脚本的文件模板,让文件创建的时候就自动写上一些相关信息:1、进入pycharm的File->sett
- 大部分服务器管理员知道MySQL数据库管理系统(RDBMS)是高度灵活的软件块,带有范围广阔的启动选项,可以用来修改相关行为。然而,大部分人
- 不过有一个简单的执行cmd命令方法: SQL> host net user User accounts for \\PC-ATQHJ4
- JavaScript组件打包模式js组件通常带着css image ,但这样使用起来可能会有些小麻烦,为了让组件足够的solo,有了把css
- 回顾一下已经了解的数据类型:int/str/bool/list/dict/tuple还真的不少了.不过,python是一个发展的语言,没准以
- 大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧。那么这次为大家带来,Python爬取糗事百科的小段子的例子。首
- 方案5 使用xml参数 对sql server xml类型参数不熟悉的童鞋需要先了解下XQuery概念,这里简单提下XQuery 是用来从
- 再写入数据库对时间进行加减操作时候django报告了错误TypeError: can't subtract offset-naive
- 本文实例讲述了php生成shtml类及其用法。分享给大家供大家参考。具体如下:<?php class Shtml{ &nb
- 本文实例讲述了Python中逗号的三种作用。分享给大家供大家参考。具体分析如下:最近研究python 遇到个逗号的问题 一直没弄
- 介绍pandas数据聚合和重组的相关知识,仅供参考。1GroupBy技术1.1简介简介:根据一个或多个键进行分组,每一组应用函数,再进行合并
- 设置部分:首先网页登录QQ邮箱设置一些待会儿会用到的参数:首先开启POP3/SMTP和IMAP/SMTP服务,然后生成授权码,然后复制到代码
- 以下以CentOS 7.2为例,安装php的运行环境,首先打开php官网http://php.net/点击导航栏的Downloads进入下载