2016-06-14 10 views
-3

これは機能します。Python関数のグローバル変数が自分のコードでは機能しません

a = [2,5,3,7,9,12] 
def mean_list(x): 
     b = 0 
     for i in x: 
      b=b+i 
      c = b/len(x) 
     return c 
print(mean_list(a)) 

しかし、私はグローバルとして自分のリストを宣言していますが、これは機能しません。どうして?

def mean_list(x): 
     global a 
     a = [2,5,3,7,9,12] 
     b = 0 
     for i in x: 
      b=b+i 
      c = b/len(x) 
     return c 
print(mean_list(a)) 
+0

*が定義されています。とにかく、あなたはなぜグローバル状態を使用していますか?なぜあなたは同じことをパラメータとして渡していますか? – jonrsharpe

+0

「うまくいかない」とはどういう意味ですか?それはエラーを投げますか?その場合は、完全なトレースバックをエラーとともに追加します。関数を呼び出す前に 'a'はありませんので、関数に' a'を渡すことはできません(存在しないため)。 – syntonym

+0

2番目の例では、 'a'を定義する関数を定義します。次に、パラメータとして 'a'を渡して関数を呼び出そうとします。問題は、関数がまだ呼び出されていないので、 'a'はまだ定義されていないということです!グローバルを呼び出すと、 –

答えて

1

あなたのリスト(a)は、この機能を呼び出すと作成されます。したがって、関数を一度呼び出さない限り、関数は別の変数で呼び出され、その後はa

関連する問題