Python中的“_args”和“__kwargs”用法详解
作者:程序猿-张益达 发布时间:2023-03-11 02:10:38
标签:Python,args,kwargs
*args 和 **kwargs
首先,要知道的是并不是必须写成*args和**kwargs。 只有变量前⾯的*才是必须的。所以,你也可以写成*var 和**vars。写成*args 和**kwargs只是⼀个通俗的命名约定。
*args 和 **kwargs 主要⽤于函数定义。 你可以将不定数量的参数传递给⼀个函数。
这里的不定的意思是: 预先并不知道,函数使⽤者会传递多少个参数,所以在这个场景下使用这两个关键字。
*args 的用法
*args是用来发送⼀个非键值对的可变数量的参数列表给⼀个函数。
来看一个例子,可以帮助理解:
def test_var_args(f_arg, *argv):
print("first normal arg:", f_arg)
for arg in argv:
print("another arg through *argv:", arg)
>>> test_var_args('yasoob', 'python', 'eggs', 'test')
first normal arg: yasoob
another arg through *argv: python
another arg through *argv: eggs
another arg through *argv: test
**kwargs的用法
**kwargs 允许将不定长度的键值对,作为参数传递给⼀个函数。 如果你想要在⼀个函数里处理带名字的参数,应该使用**kwargs。
def greet_me(**kwargs):
for key, value in kwargs.items():
print("{0} == {1}".format(key, value))
>>> greet_me(name="yasoob")
name == yasoob
使⽤ *args 和 **kwargs 来调用函数
接下来学习一下怎样使用*args 和**kwargs来调用⼀个参数为列表或者字典的函数。
现在有这样⼀个函数:
def test_args_kwargs(arg1, arg2, arg3):
print("arg1:", arg1)
print("arg2:", arg2)
print("arg3:", arg3)
可以使用*args或**kwargs来给这个函数传递参数。 比如这样使用*args:
>>> args = ("two", 3, 5)
>>> test_args_kwargs(*args)
arg1: two
arg2: 3
arg3: 5
标准参数与*args、**kwargs在使用时的顺序:
some_func(fargs, *args, **kwargs)
啥时候用
最常见的用例是在写函数装饰器的时候。
它也可以用来做猴子补丁。
来源:https://blog.csdn.net/weixin_41951954/article/details/128780002
0
投稿
猜你喜欢
- TensorFlow是Google公司2015年11月开源的第二代深度学习框架,是第一代框架DistBelief的改进版本. TensorF
- 本文实例讲述了PHP判断是否微信访问的方法。分享给大家供大家参考,具体如下:在开发中有时需要禁止或者仅允许微信浏览器进行访问,则此时就需要对
- 注入漏洞代码和分析<?php function customError($errno, $errstr, $errfile, $err
- 前言夏天是用来告别的季节,因为毕业总在七月。那么七月之前的季节是用来干嘛的呢?当然是用来做毕业设计的啦今天还是写一些从简单到难的毕业设计或者
- 本文实例讲述了php实现的美国50个州选择列表。分享给大家供大家参考。具体如下:这里展示的是php生成的美国50个州的选择列表,自动选择当前
- 服务器现在同时输出json和xml两种数据,取决于服务程序和页面之间的约定。在程序遇到问题的时候会返回错误信息,也按照相同的约定会返回jso
- 问题描述最近做一个项目,是用Python进行相关的串口操作。及将相关指令通过串口发给设备,设备根据发过来的指令来做出相应的操作,所用的库是P
- 分页显示是页面常用技术,可用下列代码来实现:<%page=Request.QueryString("page&q
- 1.python爬虫浏览器伪装#导入urllib.request模块import urllib.request#设置请求头headers=(
- 简介查看百度搜索中文文本聚类我失望的发现,网上竟然没有一个完整的关于Python实现的中文文本聚类(乃至搜索关键词python 中文文本聚类
- NopCommerce为了实现松耦合的框架设计目的,使用了IOC框架:Autofac。据有人测试,Autofac是性能很好的IOC工具。1、
- 首先要把php_iconv.dll和inconv.dll COPY到c:\winnt\system32下,直接上代码:<?define
- python判断一个变量是否已经设置的方法:可以使用locals()函数来进行判断。locals()函数会以字典类型返回当前位置的全部局部变
- 如何使用Index Server建立一个网站导航地图?程序代码如下:<html><head><title>asp教程之网站导航 -
- 今天继续给大家介绍Python相关知识,本文主要内容是Python asyncio异步编程常见问题。一、asyncio编程简单示例首先,我们
- 一.简单介绍: functools模块用于高阶函数:作用于或返回其他函数的函数。一般而言,任何可调用对象都可以作为本模块用途的函数
- 本文实例讲述了JavaScript导出Excel的方法。分享给大家供大家参考。具体实现方法如下:<html xmlns="h
- 在学习与运用ASP中,response对象涉及到的方面也比较多,想全部都掌握也并非一两天的事,我也是最近才发现response对象中居然有这
- 本文实例为大家分享了python实现文件批量重命名的具体代码,供大家参考,具体内容如下代码:# -*- coding:utf-8 -*-im
- 如何用通过Web访问OLAP数据? <% Set Conn=Server.CreateObject(″A