Python中args是什么意思,python kwargs是什么参数

  Python中args是什么意思,python kwargs是什么参数

  在本教程中,我将重点介绍Python中的参数(*args)和关键字参数(*kwargs)。

  我将教你什么是args和kwargs,最重要的是,如何使用它们——也就是说,如何在一个函数中接受无限数量的参数和关键字参数。

  精氨酸是什么?*args用于传递非关键字参数。非关键字示例参数有fun(3,4),fun(foo , bar )。

  *如果我们不知道要传递给函数多少个参数,args通常用作防止程序崩溃的措施。这在C和其他编程语言中使用。

  什么是Kwargs?**kwargs是一个关键字参数的字典。* *允许我们传递任意数量的关键字参数。关键词基本就是字典。

  示例关键字参数是fun(foo=2,bar=7)。

  **kwargs类似于*args,除非在函数中声明变量和数量参数。

  Args和Kwargs用在哪里?当您想要执行以下操作时,Args和kwargs非常有用:

  减少代码重写。让你的代码可读。重用您的代码

  在函数中使用参数和参数让我们看看如何在函数中使用参数和参数。

  精氨酸的以下函数需要三个参数。这三个参数都有明确的定义,所以或多或少都会导致程序出错。

  Def (a,b,c): print (a b c) print add (2,3,4)让我们运行这个函数。此函数将三个数字相加,得到以下输出:

  9 Output9如果想在函数中传递四个参数而不是必需的三个参数,应该怎么做?我们将收到如下所示的错误。

  这是因为函数中只定义了三个参数,但是我们在调用函数时已经传递了四个位置参数。

  Def (a,b,c): print (a b c) print add (2,3,4,5) output typeerror: add()接受3个位置参数,但在下面的第二个示例中给出了4个,*用于非关键字参数并传递给函数。除了定义参数,我们用单个参数(*args)代替A、B和C。

  请注意*args的使用是如何让您在不更改代码的情况下轻松使用任意数量的参数的。*args为您的代码提供了更多的灵活性,因为您将来可以拥有任意数量的参数。

  add(* args):total=0 for args in args:total=arg print total场景1打印add (1,2,5)输出8场景2打印add (1,2,5,6)输出14场景3打印add (1,2,5,8)输出16更多示例创建如下所示的简单函数。

  DEF func (* args): # * args表示对于您接受的任何多个参数,它将为args中的arg捕获所有参数:print arg使用整数和字符串的组合来测试函数:

  Def func (* args): # * args表示对于你接受的任何多个参数,它都会为args中的arg捕捉所有参数:print arg print func (11,3,4,5, tuts) output 1345 tuts如果我们把列表作为参数传递呢?通过用列表l=[11,3,4,5, tuts]替换前面的参数,用列表测试函数。

  def func(*args): # *args表示无论您接受多少个参数,它都将为arg in args中的arg捕获它们:print arg l=[11,3,4,5,Tuts] printfunc (l)将列表作为一个整体打印,这是因为它将列表解释为一个项目

  使用相同的功能:

  def func(*args): # *args表示无论您接受多少个参数,它都将捕获它们,因为args in args:print(arg)l=[11,3,4,5,Tuts ]print(func(* l))*将解包列表并输出每个单独的列表项

  Kwargs允许您将关键字参数传递给函数。当您不确定将在函数中传递的关键字参数的数量时,将使用它们。

  将函数my_func和pass (x=10,y=20)作为关键字编写如下:

  def my_func(x=10,y=20):打印x,y这将打印出x的值,并输出10,20千瓦可用于解包字典键,值对。这是使用双星号( ** )完成的。重要的是要注意,每个键都必须与一个值匹配。

  这是一个典型的示例。下面的函数将国家作为键,并将其首都作为值。然后,它打印出一条语句,该语句遍历克沃格,并将每个关键字映射到为其分配的值。

  def capital _ cities(* *夸尔):#初始化一个空列表来存储键的结果结果=[],以夸脱为单位的值。items():结果。追加( {}的首都是{ }。格式(键,值)返回结果您可以使用所需的任何参数来调用该函数。

  def capital _ cities(* *夸尔):#初始化一个空列表来存储键的结果结果=[],以夸脱为单位的值。items():结果。追加( {}的首都是{ }。格式(键,值)返回结果打印首都城市(中国=北京,开罗=埃及,罗马=意大利)输出[中国的首都是北京,开罗的首都是埃及,罗马的首都是意大利]对于更复杂的示例,假设我们有一个类似于以下内容的客户模型:

  类别客户(型号。型号):名字=型号CharField(max_length=100,null=True) last_name=models .CharField(max_length=100)用户名=型号charfield(max _ length=100)email=models .EmailField(max _ length=100)password=models .CharField(max_length=100)您可以使用参数进行数据输入和来自模型对象的数据查询。让我们编写一个功能视图以创建新客户。

  kwargs={ 名字:约翰,姓氏:多伊,用户名:约翰多伊,电子邮件 johndoe@gmail.com ,密码: 1234 }新用户=用户(* * kwargs)新用户。保存()这是对刚刚使用参数创建的客户执行查询的方法。

  filter _ customer={ email :John doe @ Gmail。用户名:johndoe,}客户。对象。过滤器(* *过滤器_客户)在函数中同时使用一个参数名和参数在同一函数定义中同时使用一个参数名和参数时,*参数必须出现在* *克瓦查之前。

  class my function(Foo):def _ _ init _ _(self,*args,* * kwargs):print my function super(my function,self).__init__(*args,**kwargs)例:

  def Func(*args,* * kwargs):for args in args:print arg for item in kwargs。items():打印项目请记住,参数应该先于夸尔斯。

  def Func(*args,* * kwargs):for args in args:print arg for item in kwargs。items():print item print Func(1,x=7,u=8) Output1(x ,7)(u ,8)结论我希望本教程可以帮助您了解一个参数名和夸尔斯。

  以下是使用一个参数名和参数时要记住的一些提示:

  *参数和* *克瓦查是在函数中使用的特殊语法,用于将可变数量的参数传递给函数*参数之前发生* *克瓦查在函数定义。

  *参数和* *克瓦查最适用于输入数量保持相对较小的情况。您可以使用任意名称100个参数和参数仅是约定俗成的,不是夸尔斯。例如,可以使用*foo代替*参数或**foo代替* *克沃格。官方的计算机编程语言文档提供了很多信息以供进一步研究。此外,不要犹豫,看看我们在市场上有哪些可供出售和研究的东西,也不要犹豫,使用下面的提要来问任何问题并提供宝贵的反馈。

  翻译自:https://代码。tuts plus。com/articles/understanding-args-and-kwargs-in-python-CMS-29494

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: