我有许多共享相同参数的函数。他们将多次输入和输出此参数。
例如:
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
...
答案 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