在 python 中,有没有办法让函数使用变量并返回它而不将其作为参数传递?
最佳答案
您所要求的是可能的。如果函数没有重新绑定(bind)(例如分配)名称,而是使用它,则该名称将被视为全局名称,例如:
def f():
print(foo)
foo = 23
f()
会按照你的要求做。然而,这已经是一个可疑的想法:为什么不只是 def f(foo):
并调用 f(23)
,这样更直接、更清晰?!
如果函数需要绑定(bind)名称,那就更可疑了,即使 global
语句允许这样做......:
def f():
global foo
print(foo)
foo += 1
foo = 23
f()
print(foo)
在这里,更好的替代方案是:
def f(foo):
print(foo)
foo += 1
return foo
foo = f(23)
print(foo)
相同的效果 - 更干净、更易于维护、结构更好。
为什么你在寻找较差的(尽管可行)方法,而更好的方法更容易、更干净......?!
关于python - 在函数中使用变量而不作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28379373/