zoukankan      html  css  js  c++  java
  • 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"")

    【截图】

  • 相关阅读:
    如何在iTerm2中配置oh my zsh?
    sublime中格式化jsx文件
    ES6 new syntax of Literal
    ES6 new syntax of Rest and Spread Operators
    How to preview html file in our browser at sublime text?
    ES6 new syntax of Default Function Parameters
    ES6 new syntax of Arrow Function
    七牛云2018春招笔试题
    Spring-使用注解开发(十二)
    Spring-声明式事物(十一)
  • 原文地址:https://www.cnblogs.com/zhuhaiying/p/6269124.html
Copyright © 2011-2022 走看看