python3-可变长度参数函数(*args 和 **kwargs)
简述:
*args: 可变长度元组参数
**kwargs: 可变长度字典参数
--------------------------------------------------------------------------------------------------
详解:
【*args】:可变长度元组参数
例1:
def hello_args(para1, *args):
print("para1 :", para1)
for arg in args:
print("args:", arg)
print("type(args):", type(args))
hello_args('hello', 'this', 'is', 'mc.meng')
输出:
para1 : hello
args: this
args: is
args: mc.meng
type(args): <class 'tuple'>
可以看到,函数hello_args把第一个参数传给了位置参数(positional arguments)para1,把剩下的参数作为一个元组传给了*args。
【**kwargs】:可变长度字典参数
例2:
def hello_kwargs(para1, **kwargs):
print("para1 :", para1)
for key, value in kwargs.items():
print("{0} = {1}".format(key, value))
print("type(kwargs):", type(kwargs))
hello_kwargs("hello", key1=1, key2=2, key3=3)
输出:
para1 : hello
key1 = 1
key2 = 2
key3 = 3
type(kwargs): <class 'dict'>
或者还你可以把直接传入一个字典:
例3:
def hello_kwargs(para1, **kwargs):
print("para1 :", para1)
for key, value in kwargs.items():
print("{0} = {1}".format(key, value))
print("type(kwargs):", type(kwargs))
thiskw = {"key1": 1, "key2": "two", "key3": 3}
hello_kwargs("hello", **thiskw)
输出:
para1 : hello
key1 = 1
key2 = two
key3 = 3
type(kwargs): <class 'dict'>
但请注意:实参thiskw前面的**
---------------------
作者:menghaocheng
来源:CSDN
原文:https://blog.csdn.net/menghaocheng/article/details/79891263
版权声明:本文为博主原创文章,转载请附上博文链接!
python3-可变长度参数函数(*args 和 **kwargs)的更多相关文章
- 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)
详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类 Python中函数参数定义及调用函数时传参 ...
- python中的魔法参数:*args和**kwargs
python中的魔法参数:*args和**kwargs def foo(*args, **kwargs):print 'args = ', argsprint 'kwargs = ', kwargsp ...
- (转)python中的参数:*args和**kwargs
def foo(*args, **kwargs):print 'args = ', argsprint 'kwargs = ', kwargsprint '---------------------- ...
- 非固定参数:*args和 **kwargs
先看一个固定参数栗子: def func1(x, args): print(x, args) func1(1,22) ====================1 22 ================ ...
- Python可变参数*args和**kwargs
本文我们将通过示例了解 Python函数的可变参数*args和 **kwargs的用法. 知识预备:Python 函数和 Python 函数参数 在Python编程中,我们定义一个函数来生成执行类似操 ...
- Python3函数中特殊形参的使用:*、*args、**kwargs
Python3函数中特殊形参的使用:*.*args.**kwargs ==用法1:不定长参数== 当函数需要的参数数量不确定的时候,可以使用*args 和 **kwargs , 所有的位置参数保存在* ...
- (3)什么是函数(函数的定义、形参、实参、默认形参、可变长函数args|kwargs)
什么是函数 函数是指将一组语句的集合通过一个名字(函数名)封装起来,想要执行这个函数,只需调用其函数名即可 1.减少重复代码 2.使程序变的可扩展 3.使程序变得易维护 定义函数的语法 形参 主要的作 ...
- python3基础(七)函数基础
Function 函数是一段组织好的能够实现特定功能或者逻辑的代码块,函数代码在文件执行时读入内存并不执行,在调用函数时执行,简单来说是把一段代码封装给一个函数名(可以用变量的概念去理解,即把一段代码 ...
- Python基础-*args和**kwargs魔法变量
在学习Python时,总会遇到*args和**kwargs这两个魔法变量,那么它们到底是什么? 首先,并不是必须写成*args和**kwargs.只有变量前面的*(星号)才是必须的,你也可以写成*va ...
随机推荐
- <html> ---- position
position 固定的属性,是全局的.和DIV层次无关. <!DOCTYPE html> <html lang="en"> <head> &l ...
- EfRepository
using System;using System.Collections.Generic;using System.Linq;using System.Linq.Expressions;using ...
- 大数据学习-2 认识Hadoop
一.什么是Hadoop? Hadoop可以简单的理解为一个数据存储和数据分析分布式系统.随着互联网的普及产生的数据是非常的庞大的,那么我们怎么去处理这么大量的数据呢?传统的单一计算机肯定是完成不了的, ...
- Error: “app_name” is not translated in af
in values/strings.xml "app_name" is not translated in af, am, ar, be, bg, ca, cs, da, de ...
- border边框属性
边框属性: 边框宽度(border-width):thin.medium.thick.长度值 边框颜色(border-color):颜色.transparent(透明) 边框样式(border-sty ...
- width属性
宽度属性 width:长度值|百分比|auto 最大宽度:max-width 最小宽度:min-width 说明:设置块级元素和替换元素的内容宽度.
- FileUrl
package com.rscode.credits.util; import java.io.BufferedReader; import java.io.File; import java.io. ...
- JS处理日期&字符串格式相互转换
之前找过一些获取系统日期以及日期&字符串格式相互转换的方式,但总体自我感觉来说还是以下的方式会更适合一些. 如有更好的方式,望大家多多赐教和交流,谢谢! 2016年曾写过一次,不过只是发了一下 ...
- 记一次网络原因导致的mysql连接中断问题(druid)
date: 2018-04-19 21:00 tag: java,mysql,exception,mat,调试,jvm 工具: gceasy.io, MAT 线上系统出现一个诡异的bug,通过heap ...
- JavaScript 之存取器属性
首先介绍一下此篇随笔的主角: Object.getOwnPropertyDescriptor 和 Object.getOwnPropertyDescriptors 通过这两个api,可以访问除 nul ...