用argumen更改函数中的变量

2021-09-16 23:29:21 发布

您现在位置: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条回答
网友
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)
网友
2楼 ·

Python没有像c++(符号)那样的参数引用,因此可以使用返回函数。你知道吗

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)

相关问题