我想编写一个Python函数,该函数可以改变其中一个参数(它是一个列表,即可变的)。像这样:
def change(array):
array.append(4)
change(array)
与Python的设置(无论您决定调用它)相比,我对按值传递更为熟悉。所以我通常会这样写一个函数:
def change(array):
array.append(4)
return array
array = change(array)
这是我的困惑。由于我只能更改参数,因此第二种方法似乎是多余的。但是第一个 感觉不对。
另外,我的特定函数将具有多个参数,只有其中一个会更改。第二种方法可以清楚地知道正在更改的参数(因为已将其分配给变量)。第一种方法没有给出指示。有约定吗?哪个更好’?谢谢。
第一种方式:
def change(array):
array.append(4)
change(array)
是最惯用的方式。通常,在python中,我们希望函数能够改变参数或返回1。这样做的原因是因为如果一个函数什么都不返回,那么就很清楚地表明该函数必须具有一些副作用才能证明它的存在(例如,对输入进行突变)。
另一方面,如果您以第二种方式做事:
def change(array):
array.append(4)
return array
array = change(array)
您很容易发现难以捉摸的对象,而当您没想到它会突然改变一个易变的对象时,它们很容易出现错误-“但是我认为已经change
做了一个复制”。
1从技术上讲,每个函数都返回 某些内容 ,而_something_
恰好是None
…
问题内容: 我想做这样的事情: 并得到返回: 问题答案: 您不能那样做(正如Ignacio Vazquez-Abrams已经回答的那样),但是您可以通过类似的方式来做: 唯一的区别是您必须使用关键字参数,否则它将不起作用。 另一种解决方案是访问 传递的变量的属性,这将导致获得函数,类或名称的名称(或其他将定义此名称的名称)。您唯一应该知道的是,默认情况下,它不是变量的名称,而是函数/类/模块的原始
问题内容: 如标题所示,我需要知道方法参数中是否存在与java对应的语法,例如 (代码由维基百科提供) 问题答案: 是的,您可以这样写:
受这个答案的启发,我生成了这段代码,其输出取决于编译器: 如果使用 GCC 11 编译,调用
本文向大家介绍python函数参数(必须参数、可变参数、关键字参数),包括了python函数参数(必须参数、可变参数、关键字参数)的使用技巧和注意事项,需要的朋友参考一下 ps:下面给大家介绍下python中函数、方法、关键字的区别 一、关键字 二、函 数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。可以自己定义一个函数。 --函数-封装了独立功能,可以直接调用
本文向大家介绍Python中函数的参数传递与可变长参数介绍,包括了Python中函数的参数传递与可变长参数介绍的使用技巧和注意事项,需要的朋友参考一下 1.Python中也有像C++一样的默认缺省函数 定义有默认参数的函数时,这些默认值参数 位置必须都在非默认值参数后面。 调用时提供默认值参数值时,使用提供的值,否则使用默认值。 2.Python可以根据参数名传参数 第4行,没有指定参数名,按照顺
在通常情况下,定义函数时,函数的参数个数是预先确定的。例如,编写计算两个数相加的函数 add(a, b),代码如下: def add(a, b): return a + b sum = add(1, 2) 在第 1 行,定义了函数 add,函数有两个参数,第 1 个参数是 a,第 2 个参数是 b 在第 2 行,计算参数 a 和 参数 b 的累加和,通过 return 语句将计