在我使用python期间,我遇到了一个阻塞问题.我有一些SomeFunction应该做一些简单的计算(并且还要对它进行排序 - 我删除那段代码以使其更清晰)在给定的整数向量上并返回新的.主要问题是,每个内部循环的结果必须成为下一个的输入,但变量k和X似乎在内存中具有相同的地址.
功能如下:
def SomeFunction(k, N):
X = range(N);
for i in range(N):
for j in range(3):
X[i] = k[i]*2;
print "X:";
print X;
print "k -> :";
print k
k = X;
print "============================";
return k;
Run Code Online (Sandbox Code Playgroud)
它产生输出:
X:
[0, 1, 2, 3, 4, 5, 6, 7]
k -> :
[0, 1, 2, 3, 4, 5, 6, 7]
============================
X:
[0, 8, 2, 3, 4, 5, 6, 7]
k -> :
[0, 8, 2, 3, 4, 5, 6, 7] … 我有一个简单的 python (2.7) 脚本,应该执行一些 svn 命令:
def getStatusOutput(cmd):
print cmd
p = subprocess.Popen([cmd],stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
output, status = p.communicate()
return status, output
svn_cmd = [
["svn co " + FIRMWARE_URL + "/branches/interfaces/ interfaces --depth empty", ""],
["svn up interfaces/actual_ver.txt", " Getting current version of a branch "]
]
status, output = getStatusOutput(svn_cmd[0][0])
Run Code Online (Sandbox Code Playgroud)
不幸的是,当它在我朋友的机器上运行时,它失败并出现错误:“文件名、目录名或卷标语法不正确。” 当我在我的机器上运行它时,它工作正常。
如果我改变:
status, output = getStatusOutput(svn_cmd[0][0])
Run Code Online (Sandbox Code Playgroud)
到
status, output = getStatusOutput(svn_cmd[0])
Run Code Online (Sandbox Code Playgroud)
然后它将成功执行数组的第一个元素(命令),但第二个元素(注释)将失败。有谁知道可能出了什么问题吗?