我想将整数传递给函数。我认为这可能不起作用,因为我多次打电话给它?例如,我在一个名为Alist的函数中创建一个2d矩阵,然后返回它。通过第二个函数,我传递了Alist,并指定了我想要从Alist返回的值的位置。最后(到目前为止),第三个函数将要求返回的值和Alist。 Alist打印的正确,但返回的值(节点)打印0时,它应该是4.我想它是使用node = 0变量声明在代码的顶部,但我不知道为什么。python传递函数之间的变量
NETWORK.TXT的第一行是这样的: 0,2,4,1,6,0,
Alist = []
node = 0
file = ("F:/media/KINGSTON/Networking/network.txt")
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):
node = Alist[0][2]
print (node)
return node
#test neighbours to see if they can be used
def check_neighbours(node, Alist):
print (Alist)
print (node)
#check for neighbours. if we start at [0][0] we must look for [0][1]
#and [1][0]. Figure out how to add 1 to each cell to navigate across.
#running of code begins here
Alist = create_matrix(file)
start_node(Alist)
check_neighbours(node, Alist)
您需要向我们展示的是调用这些函数的代码。理想的问题是[SSCCE](http://sscce.org) - 我们可以针对您的输入执行某项操作,并查看输出与预期输出的不同。 – abarnert 2013-03-18 17:52:31
与此同时,让全局变量,函数参数和局部变量都具有相同的名称是非常令人困惑的,它是一个红色的标志,您希望我们看不到代码中的某种魔力。例如,在'start_node'中设置的'node'不是全局的。它被返回,但除非调用者正在做'node = start_node(Alist)'来设置全局,否则全局不会改变,所以值将仍为0. – abarnert 2013-03-18 17:53:56
@abarnert已更新 – bigl 2013-03-18 17:55:15