是否有一种方法可以在函数中设置变量,而不必在每次函数运行时重置变量?

2024-09-30 16:31:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我的意思是,如果你有这样的代码,例如:

def test():
  money = 0
  x = input('')

  if x == "givemoney":
    money = money + 100
    print(money)
    test()
  else:
    print("something")

test()

每次函数运行时,它都会将money重置为0,这是有意义的,但是我如何才能停止呢


Tags: 函数代码testinputifdefelsesomething
2条回答

在第一个版本中,可以将money作为函数的可选参数。当您从顶层调用它时,您允许它默认。进行递归调用时,传递当前值以代替默认值

def test(money = 0):
  x = input('')

  if x == "givemoney":
    money = money + 100
    print(money)
    test(money)
  else:
    print("something")

test()

你应该使用一个循环。在这里,当调用函数时,在函数的局部范围内定义并初始化money;这就是为什么每次调用test()都会重置它的原因

def test():
  money = 0
  x = input('')
  while x != 'stop':
    if x == "givemoney":
      money = money + 100
      print(money)
      x = input('')
    else:
      print("something")

test()

相关问题 更多 >