python - 在函数中使用变量而不作为参数传递

标签 python function variables arguments

在 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/

相关文章:

jquery - 变量和 jquery : how capture value (part 1)

c - 在循环内分配的变量有效,在循环外则无效。为什么?

function - 在 gnuplot 中拟合分段函数

javascript - 如何在 Javascript 中调用同一个类中的另一个方法

c - 使用指针作为函数参数来解析网络 'interfaces' 以进行读/写

css - 我可以跨 SCSS 文件使用变量吗?

python - 是否有内置函数可以执行 numpy.fromstring 的相反操作?

python - 规范化 Unicode

python - 根据 csv 文件中的切片索引连接切片字符串

python - Web2py 每个 session 导入一次