如何更新函数内的变量?
How to update a variable inside a function?
我有一个关于编写一段代码的两种不同方式的问题。我想知道在某些情况下它们是都好还是一个更好?基本上,把我们要更新的变量给函数好还是不给好?
def f1(num):
output.append(num)
output = []
f1(2)
print(output)
和
def f1(num, output):
output.append(num)
output = []
f1(2, output)
print(output)
在第一个示例中,您的函数仅适用于将元素添加到全局定义的特定数组。这不是一个好方法,你不能将它用于另一个数组。
第二个有更好的通用方法。但只有一个小的更正;你有一个名为 output
的数组,你将它传递给你的函数,但你在你的函数中保持它的名称相同。因此,对于您的函数,有两个 output
一个全局的和一个本地的,在这种情况下最好使用不同的名称:
output = []
def f1(num, arr):
arr.append(num)
f1(2, output)
print(output)
请参阅警告 PyCharm 显示在相同的命名案例中:
考虑尽可能避免使用第一个示例:全局变量可能非常难以使用,会产生您永远不会轻易发现的问题。相反,请使用第二段代码。
你也可以写类似下面的代码:
output = []
def add(num, listName):
listName.append(num)
return listname
for _ in range(5):
output = add(_, output)
print(output)
我有一个关于编写一段代码的两种不同方式的问题。我想知道在某些情况下它们是都好还是一个更好?基本上,把我们要更新的变量给函数好还是不给好?
def f1(num):
output.append(num)
output = []
f1(2)
print(output)
和
def f1(num, output):
output.append(num)
output = []
f1(2, output)
print(output)
在第一个示例中,您的函数仅适用于将元素添加到全局定义的特定数组。这不是一个好方法,你不能将它用于另一个数组。
第二个有更好的通用方法。但只有一个小的更正;你有一个名为 output
的数组,你将它传递给你的函数,但你在你的函数中保持它的名称相同。因此,对于您的函数,有两个 output
一个全局的和一个本地的,在这种情况下最好使用不同的名称:
output = []
def f1(num, arr):
arr.append(num)
f1(2, output)
print(output)
请参阅警告 PyCharm 显示在相同的命名案例中:
考虑尽可能避免使用第一个示例:全局变量可能非常难以使用,会产生您永远不会轻易发现的问题。相反,请使用第二段代码。
你也可以写类似下面的代码:
output = []
def add(num, listName):
listName.append(num)
return listname
for _ in range(5):
output = add(_, output)
print(output)