Python 更改函数外部变量的值

Python 更改函数外部变量的值,python,function,Python,Function,我想在函数的帮助下增加p,并在另一个函数中使用它,例如 p=0 def o(): 全局p p+=1 印刷品(p) 返回(p) 在这段代码中,我想在多次运行函数后使用p的值 函数中“print()”和“return”的输出与预期一致,但我需要p的值也改变。如何更改p的值? 我尝试使用另一个变量来获取p的值,但没有成功。您的代码工作正常 p = 0 def o(): global p p += 1 print(p) # -> 0 o() print(p) # -> 1

我想在函数的帮助下增加
p
,并在另一个函数中使用它,例如

p=0
def o():
全局p
p+=1
印刷品(p)
返回(p)
在这段代码中,我想在多次运行函数后使用
p
的值

函数中“
print()
”和“
return
”的输出与预期一致,但我需要
p
的值也改变。如何更改
p
的值? 我尝试使用另一个变量来获取
p
的值,但没有成功。

您的代码工作正常

p = 0
def o():
    global p
    p += 1
print(p) # -> 0
o()
print(p) # -> 1
但是我建议将p变量放在()中,这将使代码更简洁,并且可以在更大、更复杂的系统中防止更多错误和bug。

快乐编码

让一个函数像您所实现的那样操纵全局值通常不是一个好办法。由于此函数可以由您或来自任何地方的协作程序员调用,因此这可能会改变脚本不同区域中依赖的变量。此外,您可能希望能够使用相同的函数来增加不同的变量

因此,这样的解决方案更可取:

def increment(value_to_increment):
    value_to_increment += 1
    return value_to_increment

p= 0
p = increment(p)
print(p)

你几乎肯定不想这样做
global
大致从python翻译为“灾难”。我同意使用
global
可能不是一个好主意。您当然不需要使用全局变量并返回值。但我不明白你到底有什么问题。我输入了你的精确函数,多次调用它,
p
的值按预期更改。你能更好地解释你的问题吗?你想得到什么?