>我有许多函数都共享相同的参数。他们将多次输入和输出此参数。
例如:
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
...
变量越本地化越好。
这实际上是任何编程语言的公理。
struct
的 C 语言(以及其他语言,如 FORTRAN 中的等效语言(就是从这种认识中成长起来的,不久之后,面向对象的编程也随之而来。
对于方法的可重用性,传递参数是更好的方法。
我同意其他答案,但只是为了完成,正如其他人指出的那样,在这里上课听起来是个好主意。请考虑以下事项。
class myClass(object):
def __init__(self, foo):
self.a = foo
def fun(self):
# do stuff to self.a
def bar(self):
# do something else to self.a
c = myClass(foo)
c.fun()
c.bar()