前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python: *args & **kwargs

python: *args & **kwargs

作者头像
JNingWei
发布2018-09-28 11:56:15
9460
发布2018-09-28 11:56:15
举报

概述

Python是支持 可变参数 的,实现手段之一就是使用 *args**kwargs 语法。

可变参数 的意思是:预先并不知道, 函数使用者会传递多少个参数给你。

函数定义时

*args**kwargs 是一个 将 不定量的参数 pack 的过程。

函数调用时

*args**kwargs 是一个 将 不定量的参数 unpack 的过程。

同时使用时

在函数里同时使用所有这三种参数(标准参数*args**kwargs)时, 使用顺序如下:

some_func(fargs, *args, **kwargs)

其中,*args 必须位于 **kwargs 之前。

实验代码

函数定义时

def func(requirement, *args, **kwargs):
    print 'requirement = ', requirement
    print 'args = ', args
    print 'kwargs = ', kwargs
    print

if __name__ == '__main__':
    func(1, 2, 3, 4)
    func(0, a=1, b=2, c=3)
    func(1, 2, 3, 4, a=1, b=2, c=3)
    func('a', 1, None, a=1, b='2', c=3)

打印结果:

requirement =  1
args =  (2, 3, 4)
kwargs =  {}

requirement =  0
args =  ()
kwargs =  {'a': 1, 'c': 3, 'b': 2}

requirement =  1
args =  (2, 3, 4)
kwargs =  {'a': 1, 'c': 3, 'b': 2}

requirement =  a
args =  (1, None)
kwargs =  {'a': 1, 'c': 3, 'b': '2'}

函数调用时

def func(a, b, c, d):
    print 'a: ', a
    print 'b: ', b
    print 'c: ', c
    print 'd: ', d

args = [1, 2, 3, 4]
kwargs = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
print '*args:'
func(*args)
print '\n**kwargs:'
func(**kwargs)

打印结果:

*args:
a:  1
b:  2
c:  3
d:  4

**kwargs:
a:  1
b:  2
c:  3
d:  4


本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年11月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
    • 函数定义时
      • 函数调用时
        • 同时使用时
        • 实验代码
          • 函数定义时
            • 函数调用时
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档