Python3函数中特殊形参的使用:*、*args、**kwargs
Python3函数中特殊形参的使用:*、*args、**kwargs
==用法1:不定长参数==
当函数需要的参数数量不确定的时候,可以使用*args 和 **kwargs ,
所有的位置参数保存在*args中,以元组的形式保存,调用时直接用args,不需要带 *
所有的关键参数保存在**kwargs中,以字典的形式保存,调用时也直接使用kwargs
#demo1:
def func(*args, **kwargs):
print(args)
print(kwargs)
func("jack", 18, "male")
#output:
('jack', 18, 'male')
{}
调用时没有使用关键参数,所以kwargs字典里面是空
#demo2:
def func(*args, **kwargs):
print(args)
print(kwargs)
func(name="jack", age=18, sex="male")
#output:
()
{'name': 'jack', 'age': 18, 'sex': 'male'}
调用时没有使用位置参数,所以args元组里面是空,且使用的关键字名不用出现在函数定义的参数列表里
#demo3:
def func(*args, **kwargs):
print(args)
print(kwargs)
func("jack", 18, sex="male")
# func(name="jack", 18,"male") 调用时报错
#output:
('jack', 18)
{'sex': 'male'}
调同时使用位置参数和关键参数,关键参数要放在位置参数后,否则会报错
==注意:==
- *args 和 **kwargs里面的参数名args、kwargs可以为任何变量名,约定俗成用args和kwargs
==用法2:* 和 *para 后的参数调用时必须是关键参数==
#demo1:
def func(x, *, y):
print(x, y)
func(3, y=5)
func(x=3, y=5)
# func(x=3, 5) 报错
# func(3, 5) 报错
#output:
3 5
3 5
* 之后的参数调用必须是关键参数,* 之前的不限制,
如果 * 放在参数列表的第一个,则后面的参数都必须用关键参数
#demo2:
def func(x, *para, y):
print(x, para, y)
func(3, 4, y=5)
#output:
3 (4,) 5
Python3函数中特殊形参的使用:*、*args、**kwargs的更多相关文章
- 匿名函数中undefined形参疑问(转载)
唉,基本功不扎实,昨天在微博上问了个问题,就匿名函数中undefined形参,不知道是干什么用的. 经常看到这样的匿名函数代码: ;(function( $, window, document,und ...
- Pyhton函数篇(一)之函数中的形参与实参
1:什么是函数 函数其实就是带名字的代码块,用于完成一些具体的工作.如果我们在写一段程序的时候,需要多次用到同样的一个功能,如果每次都要重复写相同的代码,不仅会增加我们的代码量,更会让我们写出的代码让 ...
- tf.placeholder类似函数中的形参
tf.placeholder(dtype, shape=None, name=None) 此函数可以理解为形参,用于定义过程,在执行的时候再赋具体的值 参数: dtype:数据类型.常用的是tf.fl ...
- element-ui(vue版)使用switch时change回调函数中的形参传值问题
需求说明 有多个switch组件 需要知道switch的状态 表格中当前行(scope.row)的数据 问题描述 官方文档中对switch中change的描述: 目前能得到switch的状态值,但是无 ...
- (3)什么是函数(函数的定义、形参、实参、默认形参、可变长函数args|kwargs)
什么是函数 函数是指将一组语句的集合通过一个名字(函数名)封装起来,想要执行这个函数,只需调用其函数名即可 1.减少重复代码 2.使程序变的可扩展 3.使程序变得易维护 定义函数的语法 形参 主要的作 ...
- (转)Java程序利用main函数中args参数实现参数的传递
Java程序利用main函数中args参数实现参数的传递 1.运行Java程序的同时,可以通过输入参数给main函数中的接收参数数组args[],供程序内部使用!即当你在Java命令行后面带上参数,J ...
- 一道题带你搞定Python函数中形参和实参问题
昨天在Python学习群里有位路人甲问了个Python函数中关于形参和实参一个很基础的问题,虽然很基础,但是对于很多小白来说不一定简单,反而会被搞得稀里糊涂.人生苦短,我用Python. 为了解答大家 ...
- Python3 函数进阶1
目录 闭包函数 什么是闭包函数 闭包函数的作用 装饰器 什么是装饰器 无参装饰器 有参装饰器 闭包函数 什么是闭包函数 闭包函数本质上就是函数嵌套和高阶函数 闭包函数的满足条件: 必须嵌套函数 内嵌函 ...
- C指针(2)——指针在函数中的应用(程序讲解)
3-1.c指针用作函数参数 #include<stdio.h> typedef unsigned char uint8_t; //类型自定义,通过typedef语句重新把unsigned ...
随机推荐
- Using Keyboard Navigation
http://technet.microsoft.com/en-us/library/cc939835.aspx
- android 好的源码链接
1.自定义表情键盘:https://github.com/w446108264/XhsEmoticonsKeyboard 2.底部导航栏https://github.com/Ashok-Varma/B ...
- java 进销存 商户管理 系统 管理 库存管理 销售报表springmvc SSM项目
统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3 SSM 普 ...
- C# 生成word文档(NPOI.XWPF)
一.基础 1.创建Word using NPOI.XWPF.UserModel XWPFDocument doc = new XWPFDocument(); //创建新的word文档 XWPFPara ...
- Python网络编程:Linux epoll
原文地址:http://scotdoyle.com/python-epoll-howto.html 介绍 Python已于2.6版本添加访问Linux epoll库的API.这篇教程使用Python ...
- Vue列表渲染:一个取值范围的v-for
v-for 也可以取整数.在这种情况下,它将重复多次模板. 例子 <div id="app"> <span v-for="n in 10"&g ...
- MongoDB 聚合管道
参见:http://www.cnblogs.com/liruihuan/p/6686570.html MongoDB 的聚合功能,聚合操作主要用于对数据的批量处理,往往将记录按条件分组以后,然后再进 ...
- jmeter 参数化4_Function Helper中的函数
Function Helper中的函数: 可作为其他参数化方式的补充项,如:随机数生成的函数${__Random(,,)} 操作路径:操作路径:Options-->Function Helpe ...
- Xcode7.1环境下上架iOS App到AppStore 流程②
前言部分 part二部分主要讲解 iOS App IDs 的创建.概要文件的配置.以及概要文件安装的过程. 一.iOS App IDs 的创建 1)进入如图1所示界面点击右上角箭头所指的加号 进入iO ...
- SQL Server 创建表
SQL Server 创建表 我们在上一节中完成了数据库的创建,在本节,我们要往这个新的数据库中加入点数据,要想将数据添加到数据库,我们就必须在数据库中添加一个表,接下来来看看具体的操作. 我们的数据 ...