【问题标题】:Why does this simple python function only work once为什么这个简单的python函数只工作一次
【发布时间】:2021-12-27 12:43:42
【问题描述】:

我想创建一个简单的计数器,所以我创建了这个函数:

count = 0

def add(count):
    count += 1
    print(count)

如果重新调用,计数会上升到 1,但如果我再次调用它,它会保持在 1。 调用后我还尝试在函数外部输出计数变量,但这导致输出恒定为 0

【问题讨论】:

  • 将你的函数改为return count而不是打印它,像这样调用你的函数:count=add(count),然后在调用add()之后print (count)。函数内部的count 是函数本地的不同变量。
  • 所以我也可以将count 声明为全局变量,对吧?
  • 你可以,但不要。
  • 在技术上可以将函数内的变量声明为全局变量 (stackoverflow.com/questions/423379/…),但最好避免这种情况,因为它会导致混淆。让函数简单地返回一个值是更好的做法。

标签: python function counter


【解决方案1】:

函数中的count 变量与脚本其余部分中的count 变量具有不同的作用域。修改前者不影响后者。

您需要执行以下操作:

def add(count):
    count += 1
    print(count)
    return count

count = 0
count = add(count)
count = add(count)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多