(Python)我应该使用参数还是将其设为全局?

tis*_*rum 2 python parameters global-variables

我有许多函数都共享相同的参数.他们将多次输入和输出此参数.

例如:

a = foo
a = fun(a)
a = bar(a)

def fun(a):
     ...
     return a

def bar(a):
     ...
     return a
Run Code Online (Sandbox Code Playgroud)

什么在语法上更正确,通过函数传递参数,或者让所有函数可以全局访问?

a = foo
fun()
bar()

def fun():
    global a
    ...

def bar():
    global a
    ...
Run Code Online (Sandbox Code Playgroud)

小智 5

为了方法的可重用性,传递参数是更好的方法。

  • @tisaconundrum,您始终可以将数据包装在容器或对象中,然后传递它,而不是多个参数...... (3认同)

Bat*_*eba 5

变量本地化程度越高越好.

这实际上是任何编程语言的公理.

structs中的s(以及其他语言中的等价物,如FORTRAN)从这种实现中长大,并且不久之后出现了面向对象的编程.