栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 可变参数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 可变参数

 在某些情况下,我们不能定义函数的时候,就确定参数的数量和内容,这时候就可以使用可变参数。可变参数和之前学过的有些不同,可变参数声明时不会命名,基本语法:

some_func(*args, **kwargs)

参数说明:

some_func为函数名

 *args  **kwargs  为可变参数

举例:

#!/use/bin/env python2.7
# -*_ coding: utf-8 _8_
def foo(*args):
    print (args)

foo()

foo (1, 2)

foo ("元始天尊", "xian", 20)

结果:.

()
(1, 2)
('元始天尊', 'xian', 20)

从中可以看出, “*args”参数获取到的是一个元组,这也正是它能作为可变参数的原因,

在看 **kwargs  的输出:

举例:

#!/use/bin/env python2.7
# -*_ coding: utf-8 _8_
def foo(**kwargs):
    print (kwargs)

foo()

foo ()

foo (name="元始天尊", 地域='xian', 数字=20)

结果:

{}
{}
{'name': '元始天尊', '地域': 'xian', '数字': 20}

   可以看出, “**kwargs” 参数获取到的是一个字典,所以,我们在调用函数时候 ,,也必须要使用关键字参数的方式才传递参数。

日常中使用, “*args” 和 “**kwargs” 经常出现,用于解决一些未知的情况

举例:
#!/use/bin/env python2.7
# -*_ coding: utf-8 _8_
def  hankai_ceshi(*args, **kwargs):
    s = 0
    for  i in args:
        s += i
    print ("输入的数字之和是:", s)
    for k,v in kwargs.items():
        print (k,v)

hankai_ceshi(1,1,2,3,4,5,  姓名="韩锴")

执行结果:

输入的数字之和是: 16
姓名 韩锴
   正如上述结果,我们在不知道有多少数字需要求和的时候,可以使用可变参数来获取参数中所有数字之和。

  不止在函数定义时,可以使用 ”*“ 和 ”**“ 来声明参数,子啊函数调用时,也可以使用相同的方式来传递未知的参数

#!/use/bin/env python2.7
# -*_ coding: utf-8 _8_
def  hankai_ceshi(*args, **kwargs):
    print (args)
    print (kwargs)

l = [1,2,3,4]
al = [1,2,"韩锴","python"]
d = {"参数1":"args1", "参数2":"args2"}
bcd = {"参数3":"args3", "参数4":"args4"}

hankai_ceshi(*l,**d)
hankai_ceshi(*al,**bcd)

执行结果:

(1, 2, 3, 4)
{'参数1': 'args1', '参数2': 'args2'}
(1, 2, '韩锴', 'python')
{'参数3': 'args3', '参数4': 'args4'}

  从中可以看出,无论时参数调用还是函数定义的参数都能以 some_func(*args,**kwargs) 的悉尼港是调用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/339574.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号