Python 中判断函数执行结果的问题
for changeid in changeids:bugid=getBZsById(changeid)
print bugid
if bugid == set([]) :
......
......
for changeid in changeids:
project=getProjectById(changeid)
patch=getPatchById(changeid)
print project,patch
f.write(changeid + ',' + patch+'\n')
if(project!="not found" and patch!="not found"):
command="repo download -c "+getProjectById(changeid)+" "+changeid+"/"+getPatchById(changeid)
# commands.append(command)
print command
a=os.system(command)
a>>=8
if a != 0:
print "Failed to download patch with: %s"%command
sys.exit(a)
......
代码如上,中间的给省略了,我不懂的是红色的那部分
第一段要表达的意思是说,当 bugid==set([])的时候函数getBZsById(changeid)返回失败,那这个set([])在这里是什么意思呢?
第二段a是command执行返回的结果,然后对它进行移位操作,如果a=0说明成功,非0则失败,这又怎么理解呢?
还有一个问题,在shell中可以用$?来查看前面一条命令执行的结果,那么 if($?) 又表示什么意思呢?也就是说在这里$?有默认的植吗?
因为接触python和shell才一个多月,可能问题比较多,还请各位大牛帮忙看看了,不胜感激啊! 第二段a是command执行返回的结果,然后对它进行移位操作,如果a=0说明成功,非0则失败,这又怎么理解呢?
看看python手册的os.system()和os.wait(),再网上找些linux上的返回状态码的资料看看。 回复 2# whitelotus19
恩.这个的话,倒是问题不大,自己搞个测试运行一下就ok了---> set([]) 这个还是不懂
bugid=getBZsById(changeid)
print bugid
if bugid == set([]) :
判断getBZsById()返回空集合?那看看getBZsById()里面的内容呢
页:
[1]