下面的腳本工作正常,直到我添加了「def test」,我試圖擺脫所有的全局變量我的編程總的來說,因爲我不是一個偉大的程序員,我希望有一種方法可以做到這一點。將數據中間函數傳遞迴函數Python
我想將「foo」從函數「test」傳遞迴函數「work」,但這不起作用,因爲它不是全局變量。有任何想法嗎?
bar = "bar"
barnone = "barnone"
def function_A():
data = 5
data1 = 15
if host == 1:
work(data, data1)
else:
function_B()
def function_B():
data = 3
data1 = 13
work(data, data1)
test(data)
print foo
def work(data,data1):
print data
print data1
test(data)
print foo
def test(data):
if data == 3:foo = bar
elif data == 5:foo = barnone
if __name__ == '__main__':
host = 11
function_A()
編輯:
謝謝你,這個工程......我感謝所有的反饋,我是新手,請記住,這只是一個測試腳本我放在一起理解傳遞參數以不同的功能。在此之前,我正在使用全局變量,並試圖擺脫它們。
謝謝,任何建議是有幫助的。
bar = "bar"
barnone = "barnone"
def function_A():
data = 5
data1 = 15
if host == 1:
work(data, data1)
else:
function_B()
def function_B():
data = 3
data1 = 13
work(data, data1)
test(data)
def work(data,data1):
print data
print data1
test(data)
print test(data)
def test(data):
if data == 3:foo = bar
elif data == 5:foo = barnone
return foo
if __name__ == '__main__':
host = 11
function_A()
也許一個Python教程會爲你解決問題。你的代碼有很多問題,甚至很難描述它們。 https://docs.python.org/3/tutorial/ – wroniasty