これを動作させるにはどうすればよいですか?私は捜しましたが、私はまだそれを働かせることはできません。より多くの変数を追加したとしても、b関数にa()関数を入れるだけでいいですか?関数内の関数の呼び出し - Python
counter = 1
def a():
az = 1
bz = 2
cz = 3
def b():
a()
if counter > 0 :
print az, bz, cz
b()
これを動作させるにはどうすればよいですか?私は捜しましたが、私はまだそれを働かせることはできません。より多くの変数を追加したとしても、b関数にa()関数を入れるだけでいいですか?関数内の関数の呼び出し - Python
counter = 1
def a():
az = 1
bz = 2
cz = 3
def b():
a()
if counter > 0 :
print az, bz, cz
b()
いいえ、あなたは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を参照することもできます。あなたは何かのように行うことができます。
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()
関数 'a()'の変数は関数 'a()'の* local *で、関数 'b()'ではアクセスできません。 – zhenguoli
これはあなたにとって便利なはずです:http://stackoverflow.com/questions/291978/short-description-of-the-scoping-rules – fileyfood500
ポイントは、 'a()'がbで正しく呼び出されていますが、 aの変数はbに存在しない。 – fileyfood500