zoukankan      html  css  js  c++  java
  • args *args **kwargs区别

    python 函数中的参数类型有两种,分别为 位置参数和关键字参数:

            一 、位置参数(该类参数位置固定不变)

                    args:     表示默认位置参数,该参数是具象的,有多少个参数就传递多少参数,且参数位置和定义时一致,数目不统一会报错,可以随意命名,参数数据类型和传递时给定的数据类型一致。

                    *args:   表示可变位置参数,该参数位置和传递时保持一致,但是可变的,可以有,可以无,参数传递到一个元组中。

            二、关键字参数

                    **kwargs:   表示可变关键字参数,该参数可以传递0个或多个,可有可无,参数传递到一个字典中,以键值对形式存在。

    综合示例:

    #!/usr/bin/env python  
    # -*- coding:utf-8 _*-
    __author__ = '池偏一'
     
    '''
        @author:shz
        @license: Apache Licence
        @file: testargs.py
        @time: 2018/06/19
        @site:
        @software: PyCharm
    '''
     
    import sys
     
    reload(sys)
    sys.setdefaultencoding('utf-8')
     
     
    class TestArgs(object):
     
        def default_args(self, x, y):
            print x, y
            print type(x), type(y)
     
        def variable_args(self, *args):
            print args
            print type(args)
     
        def variable_kwargs(self, **kwargs):
            print kwargs
            print type(kwargs)
     
        def allargs(self, x, *args, **kwargs):
            print x
            print args
            print kwargs
     
     
    if __name__ == '__main__':
        ts = TestArgs()
        try:
            ts.default_args()
        except TypeError:
            print "默认参数形式请传递相对应参数"
        ts.default_args('123', 45)
         
        print '-*-' * 5
         
        ts.variable_args()
        ts.variable_args(1, 3)
        ts.variable_args(123, '456', 789, 'aaaaa')
         
        print '-*-' * 5
         
        ts.variable_kwargs()
        ts.variable_kwargs(x='aaa', y=123)
        ts.variable_kwargs(a=1, b=2, c=3, d='qqq', e='www', f='rrr')
         
        print '-*-' * 5
         
        ts.allargs('111')
        ts.allargs('111', 'aaa', 444)
        ts.allargs('111', a='2342', b=234)
    

      

  • 相关阅读:
    shell脚本进阶
    sort与uniq命令
    sed命令
    DNS与CDN
    nginx
    Docker Private Registry
    docker存储卷
    docker容器网络配置
    docker容器网络
    docker容器虚拟化
  • 原文地址:https://www.cnblogs.com/cpy-devops/p/9287308.html
Copyright © 2011-2022 走看看