用参数改变函数中的变量

时间:2018-06-15 15:22:20

标签: python

我真的不知道如何通过使用带参数的函数来增加变量。下面的代码打印0和1,我理解为什么,但我不知道如何解决它。它只是一个普通的形状'代码,所以可以有任意数量的变量。如果你看看会很感激!

i=0
b=0
def increase(a):
    print(a)
    a+=1
    print(a)
for e in range (3):
    increase(i)
    increase(b)

2 个答案:

答案 0 :(得分:3)

Python没有像c ++(& sign)这样的参数引用,因此您可以使用返回函数。

i=0
b=0
def increase(a):
  print(a)
  a+=1
  print(a)
  return a
for e in range (3):
    i = increase(i)
    b = increase(b)

答案 1 :(得分:-1)

有一个冗长的讨论围绕着为什么你不能按照你尝试的方式去做你所做的事情,但接受的答案here应该对你有用。本质上,Python中的所有参数都是通过对象引用传递的,因此如果使用参数名称重新赋值函数,则不会更改传递给函数的变量所指向的值。

您尝试的行为是可能的,您只需要将您的函数传递给一个可变类型,如列表。因此,如果您有以下代码,它应该按照您的示例执行您期望/想要的内容:

i=[0]
b=[0]
def increase(a):
    a[0]+=1

for e in range (3):
    increase(i)
    increase(b)

print(i)
print(b)
相关问题