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を使用することはできません。これを行う最善の方法は global を使用することだと思われますが、それは非常に嫌われているようです。グローバルが推奨されないのはなぜですか? ここで使用してもよろしいでしょうか?これについて他にどうすればよいですか?

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 に答える