当前位置: 首页 > 网络应用技术

Python函数可以具有多少个参数(2023年的最新答案)

时间:2023-03-05 18:43:27 网络应用技术

  简介:许多朋友询问有关Python函数可用多少参数的问题。本文的首席CTO笔记将为您提供详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!

  Python函数的参数类型主要包括强制性参数,可选参数,可变参数,位置参数和关键字参数。本文介绍了他们的定义和可变数据类型参数要注意。

  所需的参数是必须输入的参数。例如,以下代码必须输入2个参数,否则将报告错误:

  实际上,以上示例中的参数num1和num2也属于关键字参数。例如,您可以以以下方式调用它:

  结果:

  可选参数不能传递到该函数中。有一个默认值。如果未传递,它将使用默认值,并且不会报告错误。

  位置参数(正面参数)根据其在函数定义中的位置调用。以下是POW()函数的帮助信息:

  X,Y和Z的三个参数的顺序是固定的,无法使用关键字:

  输出:

  您可以在POW()函数上方的POW()函数之后看到位置参数。这是python构建的函数的语法定义。Python开发人员在Python 3.8版本之前无法在代码中使用此语法。但是Python3.0至3.7可以使用以下方法定义位置参数:

  星号前面的参数是位置参数或关键字参数。星号背后是强制性关键字参数。有关详细信息,请参阅强制性关键字参数。

  Python3.8版本引入了强制性位置参数,也就是说,我们可以使用后斜率 /语法来定义位置参数,可以以以下形式写入:

  查看以下示例:

  Python3.8运行:

  它不能分配给关键字参数的形式。

  变量参数(varargs arguunt)是传输的参数数,可以为0-n。使用星号( *)自动将输入参数组装成元组:

  结果:

  关键字参数允许将任何参数名称导入到Python函数中的任何参数,并且双星号(**)自动组装成函数中的字典。

  结果:

  上面介绍的参数可以混合::

  结果:

  注意:由于与普通参数一起使用时,参数通过的数量是不确定的,因此必须将星号的参数放在末尾。

  python3引入了仅CEYWORD的参数,可以参考:。将星号分开:

  位置参数前面的参数可以是第一部分中的位置参数和关键字参数。星号背后的参数是强制性关键字参数。您必须以指定的参数名称传递参数。如果未在没有默认参数的情况下设置强制性关键字参数,则在调用函数时必须传递该参数。

  结果:

  您还可以将关键字参数命名为变量参数,因此不需要星号分离器:

  结果:

  在Python对象和内存管理机制中,Python中参数的参数传输属于对象的引用(通过对象引用传递)。编写功能时,您需要特别注意。

  让我们首先看一个示例:

  结果:

  L1和L2指向相同的地址。由于变量列表,当L1更改时,L2也会更改。

  然后查看以下示例:

  结果:

  L1没有改变!为什么不[1、2、3、4]?

  l = l + [4]表示在末尾创建一个新列表“添加元素4”,让L指向此新对象。L1不执行任何操作,因此L1的值不变。如果要更改L1的值,则需要添加返回值:

  结果:

  以下代码执行结果是什么?

  结果:

  像第一个示例一样,L1和L2指向相同的地址,因此它们会一起改变。如何解决这个问题?

  您可以使用以下方法:

  您也可以使用浅副本或 - 深度副本。对于特定的用法方法,请参阅Python对象和内存管理机制。在Python编程时,此问题需要特别注意。

  本文主要介绍Python函数的几个参数:必需的参数,可选参数,可变参数,位置参数,强制性位置参数,关键字参数,强制性关键字参数。请注意,它们不是完全独立的,例如强制选择参数,可选参数也可以是关键字参数,位置参数可能是必不可少的参数或可选参数。

  另外,Python中的参数传输属于对象的参考传输。传递可变数据类型的参数时,您需要特别注意。如有必要,请使用Python复制方法。

  参考文档:

  -结束 -

  Python的功能参数类型分为4种类型:

  1.位置参数:调用函数时,该参数会根据函数定义的参数位置传递。位置参数也可以称为必要参数。函数调用时必须传递参数。

  当参数满足函数必要参数的条件时,可以正常执行该函数:

  添加(1,2)#必须对应的两个参数的顺序,而一个较小的参数不能为

  当我们运行上述程序时,输出:

  当功能需要两个必要的参数时,但是当呼叫函数仅给出一个参数时,该程序将引发异常

  添加(1)

  当我们运行上述程序时,输出:

  当功能需要两个必要的参数时,但是当呼叫函数仅给出三个参数时,该程序将引发异常

  添加(1,2,3)

  当我们运行上述程序时,输出

  2.关键字参数:用于功能调用,通过“键值”表单指定。它可以使功能更清晰,易于使用,并清除参数的顺序。

  添加(1,2)#这种传递参数的方法必须按顺序传递:x对应1,y对应:2

  添加(y = 2,x = 1)#pass参数在Guan Jian的方式中(不能按顺序)

  正确的呼叫方法

  添加(x = 1,y = 2)

  添加(y = 2,x = 1)

  添加(1,y = 2)

  允许上述呼叫,并且可以正常执行

  错误的呼叫方法

  添加(x = 1,2)

  添加(y = 2,1)

  以上电话将引发语法异常

  可以看出,当存在位置参数时,位置参数必须在关键字参数的前面,但是关键字参数之间没有顺序顺序

  3.默认参数:它用于定义函数并为参数提供默认值。调用该功能时,您可以传递或不传递默认参数的值。所有位置参数必须出现在默认参数之前,包括函数定义和呼叫。这次有多个默认参数,当调用时,您可以按顺序提供默认参数,或者以顺序提供一些默认参数。当您不提供某些默认参数以按顺序为顺序,您需要编写参数名称

  默认参数的函数定义

  以上的第一个示例是定义位置参数的正确方法,第二个示例是错误的,因为位置参数是正面,默认参数在后面

  def add1(x = 1,y)的定义将抛出以下异常

  默认参数的函数

  注意:定义默认参数默认参数。

  不变的对象:无法更改对象指向的内存中的值,int,string,float,tuple

  各种对象,可以更改,dict,列表的对象指向对象指向的内存的值

  在这里,请自己理解这个概念或拜杜。

  举一个简单的例子

  4.可变参数差异:定义函数时,有时我们不确定调用时会使用多少个参数,j可以使用变量参数

  可变参数有两种主要类型:

  *args :(位置参数)允许任何数量数量的可选位置参数(参数),将分配给元组,参数名称与*,args只是一个庸俗的变量名称,可以替换其他名称。

  ** kwargs :(关键字参数)允许任何数量数量的可选关键字参数,这些参数将分配给字典。参数名称在前面可用。夸尔格只是一个粗俗的变量名称。

  *ARG使用

  ARGS是用于将非键对参数传递给函数的参数列表

  语法是使用符号数的变量参数;根据公约,通常使用ARG一词。args等同于变量名称,该名称可以由您自己定义

  在上面的程序中,我们将* arm用作可变长度参数列表以传递到add()函数。在函数中,我们有一个周期来实现参数计算和输出结果。

  您还可以将参数直接传递到列表或数组,并传递数组或列表中参数的参数名称。

  理解 * * Kwargs

  ** Kwargs允许您将无限长度作为参数的键值传递给函数。这些关键字参数会自动组装在函数中以进行dict

  *args的参数的参数传输和使用的下一部分,** kwargs,请注意

  创建一个函数来计算三个数字的总和,如下所示:

  当我们下来时,我们称其为:

  假设我们要计算此功能的平均值返回结果。因此,假设目前有很多参数,您仍然数数吗?目前,此方法显然是不合适的,是否有更方便,更有效的方法?我们看不起。

  通过上面的示例,我们不仅可以获取参数数量,还可以获取所有变量名称和默认返回值。在这次,我们只需要根据自己的需求应用,因此上述问题将自然解决。

  对于Python函数参数,初学者可能已经输入了迷宫,尽管我也是初学者,但只需总结一下即可。

  在谈论参数之前,让我们谈谈两个包装(包裹)并解开包装:

  输出:

  我不能总结这个概念,我只能帮助这里的每个人

  1.位置参数和关键字参数:

  调用该函数时,参数将根据函数定义的参数位置传递。

  注意:

  当存在位置参数时,位置参数必须在关键字参数的前面,但是关键字参数之间没有顺序顺序

  2.默认参数:

  它用于定义函数并为参数提供默认值。调用函数时,您可以传递默认参数的值(注意:所有位置参数必须出现在默认参数之前,包括函数定义和调用)

  第三,可变参数:

  定义函数时,有时我们不确定在调用时会传递多少个参数(不是参数)。在此时间,可以通过包装位置参数或包装关键字参数传递参数,这看起来很方便。

  1.包装位置传输

  我们传达的所有参数将由ARGS变量收集。它将根据传递参数的位置合并成元组。ARGS是元组类型,即包装位置通过。

  2.包装关键字传输

  kargs是字典(dict),收集所有关键字参数

  第四,解开包装参数:

  *args和** kargs也可以在称为函数时使用,称为解开包装

  1.传输元组时,让元组的每个元素对应于一个位置参数

  2.传递字典字典时,让字典的每个键值通过函数作为关键字参数传递给函数

  5.位置参数,默认参数,变量参数的混合使用

  1.基本原理是:第一个位置参数,默认参数,包裹位置,包裹关键字(应遵循定义和呼叫)

  2. *args和** kwargs之间的差异

  首先看演示:

  输出结果:

  分析:您可以看到这两个是[python]中的变量参数。*args代表任何多个未知参数,它是一个元组。** Kwargs指示一个关键字参数,它是一个dict。并且当使用 *args和** kwargs同时, *args参数必须在** kwargs之前为列,否则语法错误将报告!互截面的InterlesectionIntersection

  还有一个小型应用程序:创建词典

  实际上,python中有一个dict类,可以创建一个具有dict的字典(a = 1,b = 2,c = 3)。

  *args:

  重点是*,后来的args等同于一个变量名称,该名称本身可以定义。它的本质是将标准的剩余价值集中在元组上。

  从角度来看:

  从坚实的角度来看:

  从不同的角度来看,** kwargs:

  ** Kwargs与位置参数和默认参数混合:

  超复合的混合参数混合注释:

  总结:

  位置参数:

  调用函数时传递的参数的位置必须与定义函数定义时参数的位置相同

  关键字参数:

  使用关键字参数将指定将给出哪些参数。

  *位置参数:可接受的位置参数(金属组)可以接受;仅当最后一个位置参数可以出现,然后参数为关键字参数

  **关键字参数:可接受的关键字参数(字典)可以接受;仅当最后一个参数显示为最后一个参数

  参数是函数定义的参数形式

  参数是调用函数时传递的参数实体。

  通常有两种类型的参数模式称为函数调用:

  还,

  还有关键字段落

  Python的函数参数定义通常具有五种类型:位置和关键字参数混合,仅位置参数,仅关键字参数,变量位置参数,变量关键字参数。Python语法中没有这样的设计。

  我们通常看到的功能是混合位置和关键字。

  您可以使用这两个关键字,并且可以使用位置调用

  或者

  该方法的定义只能使用关键字参数的模式

  f(*some_list)和f(arg1,arg2,...)(其中som_list = [arg1,arg2,...])是等效的

  网络模块请求的请求方法的设计

  大多数可选参数都设计为可变关键字参数

  有很多方法可以定义该函数的输出:

  非常晦涩

  如果将变量对象用作函数的默认参数,则将在所有函数调用中共享默认参数。

  示例1:

  AddItem方法的数据设计了一个默认参数,这可能会导致共享默认参数。

  在python中,该函数的默认参数在__default__属性中,这是一个meta -group类型

  示例2:

  在示例1中,默认参数是一个列表,它是可变的数据类型。当它用__defauts__属性编写时,函数AddItem的操作不会更改其ID,这等同于__defauts__ joill Save datathe quotation不关心其内存数据。每个调用addItem可以在AddItem .__ defaults__中修改数据,这是共享数据。

  如果默认参数是图像类型,则情况将有所不同,并且您无法首次更改默认参数的第一个存款的值。

  在示例1中,连续调用additem(“世界”)的结果将是

  没想到

  结论:以上是首席CTO注释为每个人编制的Python功能的全部内容。感谢您阅读本网站的内容。我希望这对您有帮助。有关Python函数可以拥有多少参数的更多信息。不要忘记在此站点上找到它。