python中一颗*args和2颗**kwargs的区别

*args是不定长参数,有时候我们在定义函数时不确定要写几个参数时,就可以使用不定长参数。

比如发送一个http请求,有些需要传headers,cookies,有些请求不需要,就可以使用不定长参数了。

python中一颗*args和2颗**kwargs的区别

**kwargs是关键字参数,传递的是字典格式的参数。

连接数据库的时候,需要传地址,数据库名,用户名,密码这些参数这个时候就可以使用关键字参数了。

写一个配置文件,需要用的时候直接以关键字参数传递。

python中一颗*args和2颗**kwargs的区别

import pymysql
from tools.read_yml import read_file
from tools.read_project_path import db_config_path


conf = read_file(db_config_path)

class DbMysql():

    def do_mysql(self,search_sql):
        conn = pymysql.connect(**conf)
        cursor = conn.cursor()
        cursor.execute(search_sql)
        res = cursor.fetchone()
        cursor.close()
        conn.close()
        return res

if __name__ == '__main__':
    print(DbMysql().do_mysql('select * from student'))

 

上一篇:函数的参数


下一篇:sqlalchemy 源码分析之create_engine引擎的创建