前言:
现在姐妹们对“pythonkw”大致比较关注,我们都想要了解一些“pythonkw”的相关知识。那么小编同时在网摘上搜集了一些对于“pythonkw””的相关资讯,希望同学们能喜欢,大家快快来了解一下吧!1. * args和** kwargs
大多数学习python的学习者都很难指出* args和** kwargs的变 kwargs的变量。 那么他们到底是什么? 其实,我们平时见到的* args和 **kwargs默认惯例,所以我们也可以写成* var和** vars 。
1.1 * args的用法
* args和** kwargs kwargs通常用于函数定义中。 * arg kwargs 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: yasoobanother arg through *argv: pythonanother arg through *argv: eggsanother arg through *argv: test
1.2 ** 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
因此,我们可以看到我们是如何处理函数中的关键字参数列表。 这只是** kwargs的皮毛,我们还可以看到它的其他用处。 现在,让我们谈谈如何使用* args和** kwargs调用带有参数列表或字典的函数。
1.3。 使用* args和** kwargs调用函数
因此,在这里我们将看到如何使用* args和** kwargs调用函数。 我们做个小测试,如下:
def test_args_kwargs(arg1, arg2, arg3): print("arg1:", arg1) print("arg2:", arg2) print("arg3:", arg3)
现在,我们可以使用* args或** kwargs将参数传递给函数,方法如下:
>>> args = ("two", 3, 5)>>> test_args_kwargs(*args)arg1: twoarg2: 3arg3: 5>>> kwargs = {"arg3": 3, "arg2": "two", "arg1": 5}>>> test_args_kwargs(**kwargs)arg1: 5arg2: twoarg3: 3
使用* args ** kwargs和形式参数的顺序
因此,如果要在函数中使用所有这三个函数,则顺序为:
some_func(fargs, *args, **kwargs) #想一想,如果顺序乱了,会发生什么?
1.4 那么,我们在什么情形下才去使用它们呢?
这具体取决于我们的工作要求。 最常见的用法是用在函数装饰器上。 另外,它也可以用于代码调试,那么就意味着在运行时修改一些代码。 现在,我们考虑有一个带有名为get_info的函数的类,该类调用API并返回响应数据。 如果我们要测试它,可以用一些测试数据代替API调用。 例如:
import someclassdef get_info(self, *args): return "Test data"someclass.get_info = get_info
欢迎大家在下方留言,讨论
谢谢关注!
标签: #pythonkw