1
我該如何去實現這個功能?我已經搜索,但我不能讓它繼續工作。我應該把a()函數放在b函數中,即使我添加了更多變量?在函數中調用函數 - Python
counter = 1
def a():
az = 1
bz = 2
cz = 3
def b():
a()
if counter > 0 :
print az, bz, cz
b()
我該如何去實現這個功能?我已經搜索,但我不能讓它繼續工作。我應該把a()函數放在b函數中,即使我添加了更多變量?在函數中調用函數 - 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。
一個潛在的問題是從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中被正確調用,但是b中的變量不存在。 – fileyfood500