我很努力地通過一個列表(holder
,其中包含[0,0]
)到另一個函數。我想check_neighbours
拿起列表,然後做一些進一步的處理。我想我在main()
中正確傳遞它,但我不確定我需要做些什麼才能讓列表在check_neighbours
內部被簡單顯示時顯示其內容。我已經嘗試了=
持有人,但我收到的錯誤:功能之間的python傳遞列表
global name "holder" is not defined
我相信我一定要把holder = #something
這裏,但我想不出什麼。
def create_matrix(file):
with open('network.txt') as f:
Alist = []
for line in f:
part = []
for x in line.split(','):
part.append(int(x))
Alist.append(part)
return Alist
def start_node(Alist):
i=0
j=0
#point node to pos [0][0] of Alist
node = Alist[i][j]
#create a list to hold co-ordinates
holder = []
holder.append(i)
holder.append(j)
print holder
return node, holder
#test neighbours to see if they can be used
def check_neighbours(node, Alist):
holder = #something
#code begins here
def main():
file = ("F:/media/KINGSTON/Networking/network.txt")
Alist = create_matrix(file)
node = start_node(Alist)
holder = check_neighbours(node, Alist)
main()
再次感謝你,我想提出關於相當多的假設,我的傳球怎麼變的作品,但感謝您的幫助很大 – bigl 2013-03-19 01:15:22
@bigl:這裏的拇指簡單的規則:變量傳遞總是完全明確的。如果你有'def foo(x,y,z):',並且以'return v,w'結束,你總是需要用3個值來調用它,並將結果存儲爲2,比如'a,b = foo(c,d,e)'。 (這個經驗法則在更復雜的情況下被修改,比如帶有方法的類,全局變量等等,但是現在忽略它們。) – abarnert 2013-03-19 01:18:04
非常感謝你提供了非常有用的信息。現在一切都很好。 – bigl 2013-03-19 01:28:10