zoukankan      html  css  js  c++  java
  • 函数参数 f_arg, *args, **kwargs

    当需要给函数传参时,可以通过运用不同的形参来传递,达到参数不同的使用目的。

    简单来说:f_arg就是传递的第一个参数,类似于C++中的普通参数; *args 传递的是一个参数的list; **kwargs 传递的是一个有key的dict。

    下面通过一个例子来说明这三个参数的区别。

    def generator_function(f_args,*args ,**kwargs):
        
        yield f_args
        
        for arg in args:
            yield ("arg in *args:", arg)
            
        for key,value in kwargs.items():
            yield(" %s==%s in **kwargs:"%(key, value))
            
    
    for item in generator_function(123,"hello","haha",3421,asd=123,fff="433"):
        print(item)

    结果:

    123
    ('arg in *args:', 'hello')
    ('arg in *args:', 'haha')
    ('arg in *args:', 3421)
     fff==433 in **kwargs:
     asd==123 in **kwargs:

     什么情况下使用 *args ,**kwargs?

    比如一个定时产出的自动化程序,需要指定日期和时间去运行,同时有几种版本或者模式。

    就可以指定key等于不同的值,传入main函数中,来控制程序按照指定的模式运行了。

    例如:有一个小时级的文本挖掘程序, 可以设定两个key:  date , interval, 

    通过传入参数: date="2016-09-10" ,  interval ="1", 指定挖掘2016年9月10日的数据,同时一个小时挖掘一次。   如果传入 interval = "8",  指定8小时挖掘一次。

  • 相关阅读:
    ●BZOJ 3894 文理分科
    ●BZOJ 1797 [Ahoi2009]Mincut 最小割
    ●BZOJ 1934 [Shoi2007]Vote 善意的投票
    ●BZOJ 3996 [TJOI2015]线性代数
    php--->self与static区别
    php--->使用callable强制指定回调类型
    php--->依赖注入(DI)实现控制反转(IOC)
    php--->cookie和session
    php--->注册模式
    linux---> siege压力测试工具使用
  • 原文地址:https://www.cnblogs.com/bradleon/p/5938679.html
Copyright © 2011-2022 走看看