python_函数中使用*和**

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python_函数中使用*和**相关的知识,希望对你有一定的参考价值。

Python在函数中,使用*接收元组,使用**接收键/值对

当要使函数接收元组或字典形式的参数 的时候,有一种特殊的方法,它分别使用*和**前缀 。这种方法在函数需要获取可变数量的参数 的时候特别有用。

[注意]

[1] 由于在args变量前有*前缀 ,所有多余的函数参数都会作为一个元组存储在args中 。如果使用的是**前缀 ,多余的参数则会被认为是一个字典的健/值对 。 [2] 对于def func(*args):,*args表示把传进来的位置参数存储在tuple(元组)args里面。例如,调用func(1, 2, 3) ,args就表示(1, 2, 3)这个元组 。

[3] 对于def func(**args):,**args表示把参数作为字典的健-值对存储在dict(字典)args里面。例如,调用func(a=‘I‘, b=‘am‘, c=‘wcdj‘) ,args就表示{‘a‘:‘I‘, ‘b‘:‘am‘, ‘c‘:‘wcdj‘}这个字典 。 [4] 注意普通参数与*和**参数公用的情况,一般将*和**参数放在参数列表最后。

【示例】

# -*- coding: utf-8 -*-

def read_tuple(*args):
    """
        *args: 用来接收元组
    """
    for a in args:
        print a
        
        
def read_dict(**args):
    """
        **args: 用来接收字典
    """
    for key, value in args.items():
        print key
        print value
        
        
name = ("Lili", "Jack", "Lucy")
message = {"zhangsan": 24, "lisi" : 20, "wangwu":30}

read_tuple(*name)
read_dict(**message)

read_tuple(1, 2, 3)
read_dict(name = "zhangshan", age = 12, sex=u"")

 

【截图】

技术分享

以上是关于python_函数中使用*和**的主要内容,如果未能解决你的问题,请参考以下文章

12_关于flask中的宏

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

python使用上下文对代码片段进行计时,非装饰器

使用python中的构造函数限制在单例类中创建对象

如何在 python 中并行化以下代码片段?

常用python日期日志获取内容循环的代码片段