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

时间:2017-08-24 19:27:51

标签: python parameters global-variables

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

例如:

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

def fun(a):
     ...
     return a

def bar(a):
     ...
     return a

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

a = foo
fun()
bar()

def fun():
    global a
    ...

def bar():
    global a
    ...

3 个答案:

答案 0 :(得分:5)

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

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

C语言中的{p> struct(以及FORTRAN等其他语言中的等价物)从这种实现中长大,不久之后就出现了面向对象的编程。

答案 1 :(得分:4)

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

答案 2 :(得分:2)

我同意其他答案,但仅仅是为了完成,因为其他人已经指出一个类听起来像个好主意。请考虑以下事项。

WITH DISTANCE_CLIENT_IDS (CLIENT_ID) AS 
(
  SELECT DISTINCT CLIENT_ID 
  FROM DISTANCE
) 

SELECT Dx.* 
FROM DISTANCE_CLIENT_IDS D1,
(
   SElECT * , ROW_NUMBER(ORDER BY DISTANCE) RANGE 
   FROM (
     SELECT TOP(5) * 
     FROM DISTANCE D2
     WHERE D1.CLIENT_ID = D2.CLIENT_ID
   ) Dt
) Dx