• 函数参数 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小时挖掘一次。

  • 相关阅读:
    Spring 基础知识
    AJAX 基础知识
    Struts2 基础知识
    数据库——视图
    JAVA常见的集合类知识
    jsp同一应用中页面间传值方式
    mongodb 设置数据库管理员登录权限
    java freemark生成word文档
    java 多个文件打包zip
    easyui form提交文件(上传图片和文件)
  • 原文地址:https://www.cnblogs.com/bradleon/p/5938679.html
Copyright © 2020-2023  润新知