2017-05-20 26 views
1

これを動作させるにはどうすればよいですか?私は捜しましたが、私はまだそれを働かせることはできません。より多くの変数を追加したとしても、b関数にa()関数を入れるだけでいいですか?関数内の関数の呼び出し - Python

counter = 1 

def a(): 
    az = 1 
    bz = 2 
    cz = 3 

def b(): 
    a() 
    if counter > 0 : 
     print az, bz, cz 

b() 
+0

関数 'a()'の変数は関数 'a()'の* local *で、関数 'b()'ではアクセスできません。 – zhenguoli

+2

これはあなたにとって便利なはずです:http://stackoverflow.com/questions/291978/short-description-of-the-scoping-rules – fileyfood500

+0

ポイントは、 'a()'がbで正しく呼び出されていますが、 aの変数はbに存在しない。 – fileyfood500

答えて

1

いいえ、あなたはscopeという概念を理解する必要があります。 az,bzおよびczは、あなたの関数a()の中にのみ存在します。したがって、関数b()の中に値を表示することはできません。彼のコメントで述べて

counter = 1 

def a(): 
    az = 1 
    bz = 2 
    cz = 3 
    if counter > 0 : 
     print az, bz, cz 

def b(): 
    a() 

b() 

そして@ fileyfood500として、あなたはthisを参照することもできます。あなたは何かのように行うことができます。

0

1つの潜在的な修正は、aから値を返すことです。

counter = 1 

def a(): 
    az = 1 
    bz = 2 
    cz = 3 
    return(az,bz,cz) 

def b(): 
    (az,bz,cz) = a() 
    if counter > 0 : 
     print az, bz, cz 

b() 
関連する問題