# 在函数定义中使用*args和kwargs传递可变长参数. *args用作传递非命名键值可变长参数列表(位置参数); kwargs用作传递键值可变长参数列表
# *args表示任何多个无名参数,它是一个tuple
# **kwargs表示关键字参数,它是一个dict

# 注:同时使用*args和**kwargs时,*args参数列必须要在**kwargs前

# eg _v1

def func(f,*args):
print ("formal arg:",f)
for f in args:
print ("another arg",f) func(1,2,3,4) # ('formal arg:', 1)
# ('another arg', 2)
# ('another arg', 3)
# ('another arg', 4)

# eg _v2

def functions(farg, **kwargs):
print ("farmal arg:",farg)
for key in kwargs:
print ("another keyword arg:%s: %s" % (key, kwargs[key])) functions(farg=1,myarg2=2,myarg3=3,myarg4=4)
# ('farmal arg:', 1)
# another keyword arg:myarg4: 4
# another keyword arg:myarg2: 2
# another keyword arg:myarg3: 3

# eg_v3

def functions(*args,**kwargs):
print ("args= ",args)
print ("kwargs= ",kwargs)
print ("+"*18) if __name__ == "__main__":
functions(1,2,3,4,5)
# ('args= ', (1, 2, 3, 4, 5))
# ('kwargs= ', {})
# ++++++++++++++++++
functions(a=1,b=2,c=3,d=4)
# ('args= ', ())
# ('kwargs= ', {'a': 1, 'c': 3, 'b': 2, 'd': 4})
# ++++++++++++++++++
functions(1,2,3,a=1,b=2,c=3)
# ('args= ', (1, 2, 3))
# ('kwargs= ', {'a': 1, 'c': 3, 'b': 2})
# ++++++++++++++++++

Python中*args和**kwargs 的简单使用的更多相关文章

  1. python 中*args 和 **kwargs

    简单的可以理解为python 中给函数传递的可变参数,args 是 列表的形式.kwargs 是 key,value的形式,也就是python 中的字典. *args 必须出现在**kwargs 的前 ...

  2. python 中 *args 和 **kwargs 的区别

    在 python 中,*args 和 **kwargs 都代表 1个 或 多个 参数的意思.*args 传入tuple 类型的无名参数,而 **kwargs 传入的参数是 dict 类型.下文举例说明 ...

  3. Python中 *args 和 **kwargs 的区别

    先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '----------- ...

  4. python中*args和**kwargs学习

    *args 和 **kwargs 经常看到,但是一脸懵逼 ,今天终于有收获了 """ python 函数的入参经常能看到这样一种情况 *args 或者是 **kwargs ...

  5. Python中 *args 和 **kwargs 的含义?

    答:在python中,*args和**kwargs通常使用在函数定义里.*args 和 **kwargs 都允许你给函数传不定数量的参数,即使在定义函数的时候不知道调用者会传递几个参数.ps: *ar ...

  6. python 中 *args he **kwargs的区别

    ''' 一 *args 和 **kwargs 的区别? *args 表示任意个 无名参数, 类型是元祖 tuple. **kwargs 表示的是关键字的参数 传入的参数是 dict 类型. 当*和** ...

  7. Python中*args 和**kwargs的用法

    当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值.还是直接来代码吧,废话少说[python] def fun_var_args(far ...

  8. Python中*args和**kwargs的区别

    (注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 中秋的夜,微凉,但却始终看不见月亮. 我想,它一定是害羞了,悄悄的躲到了乌云的后面. 嗯,就是这样,我真是太TM机智了. 正 ...

  9. 【Python】Python中*args 和**kwargs的用法

    好久没有学习Python了,应为工作的需要,再次拾起python,唤起记忆. 当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值. 还是 ...

随机推荐

  1. 20170712 SQL Server 日志文件收索

    -- 1 日志文件增长过快,未进行任务计划截断备份 造成文件过大199G 左右,而可用空间不足8% -- 2 日志备份之前,需要一次完整备份 再进行截断备份 出现可用空间99% 此时可以选择收索数据库 ...

  2. 报错解决——linux下执行sh出现异常"syntax error: unexpected end of file"

    有时我们在linux下执行一个sh文件,会报错“SYNTAX ERROR:UNEXPECTED END OF FILE”,这个现象主要是工作的系统环境改变造成的. 若最初脚本中是在windows下,使 ...

  3. 配置SQL Server 2016无域AlwaysOn(转)

    Windows Server 2016 以及 SQL Server 2016出来已有一段时间了,因为Windows Server 2016可以配置无域的Windows群集,因此也能够以此来配置无域的S ...

  4. EOS account 中的 Threshold 和 weight 使用

    https://eoscity.io/f/viewtopic.php?f=7&t=17 这篇文章的原文:   (https://steemit.com/eos/@genereos/eos-mu ...

  5. 【开发者笔记】python中的类方法(@classmethod)和静态方法(@staticmethod)

    在java.c#等高级语言中我们用static来定义静态方法和静态变量,那么在python中如何定义静态方法和静态变量呢. python提供了@classmethod和@staticmethod来定义 ...

  6. node—基础命令

    1.安装node,在任意文件夹下按shift键选中“在此处打开PowerShell窗口”或者直接在开始菜单输入cmd启动 2.常用命令: c: 如果我们想访问c盘,那么我们需要在命令行中输入c:就行了 ...

  7. spring boot+logback+JdbcTemplate打印sql日志

    项目中使用的JdbcTemplate直接在service中执行sql语句,配置如下: 使用IDEA创建的项目自带 main/resource 中自带logback.xml 配置文件,添加以下日志配置, ...

  8. Py中enumerate方法【转载】

    转自:http://www.runoob.com/python/python-func-enumerate.html enumerate(sequence, [start=0]) sequence - ...

  9. linux 执行远程linux上的shell脚本或者命令以及scp 上传文件到ftp--免密码登陆

    场景:在linux A 上执行Linux B上的shell脚本和命令 步骤1.设置ssh免登陆 1.SSH无密码登录 # 本地服务器执行(A机器):生成密钥对 ssh-keygen -t dsa -P ...

  10. 记录python万恶的坑

    1.PyCharm Process finished with exit code -1073741819 (0xC0000005) 解决方法:卸载h5py这个包,在装cv2的时候有可能安装了h5py ...