我有一个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
但是,我不能使用变量1-6而不首先在它们内部违反它们各自的函数,因为它会抛出“赋值前引用”异常。似乎最好的方法是使用全局,但这似乎是非常不赞成的。为什么全球不推荐?在这里使用它是否可以接受?我该怎么办呢?
答案 0 :(得分:1)
您需要将这些变量定义为要在函数中使用的全局变量。这是一个例子。 Using global variables in a function other than the one that created them
答案 1 :(得分: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。