0

我有一个 python 模块,其中包含用于生成大型数组的代码,并且它包含多个用于执行此操作的函数。这就是我现在的样子:

var1 = 0
var2 = 0
var3 = 0
var4 = 0
var5 = 0
var6 = 0
def main():
    foo()
    moo(var1,var2)
    noo(var6)
def foo():
    Math using vars
def moo():
    More math
def noo():
    More math

但是,如果不首先在各自的函数中挑战它们,我就不能使用 vars 1-6,因为它会引发“分配前引用”异常。似乎最好的方法是使用全局,但这似乎很不受欢迎。为什么不推荐全局?在这里使用它可以接受吗?我该怎么办?

4

2 回答 2

1

您需要将这些变量定义为要在函数中使用的全局变量。这是一个例子。 在创建它们的函数之外的函数中使用全局变量

于 2012-11-06T02:56:03.520 回答
0

最好将变量作为参数传递给这些函数:

def main(var1, var2, var3, var4, var5, var6):
    foo(var1, var2, var3)
    moo(var2,var3)
    noo(var5)
    ...

def foo(var1, var2, var3):
    Math using vars
def moo(var2, var3):
    More math
def noo(var5):
    More math

然后只需使用所有 6 个参数调用 main。

于 2012-11-06T02:58:27.893 回答