lingdian87 发表于 2014-12-24 21:17

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才一个多月,可能问题比较多,还请各位大牛帮忙看看了,不胜感激啊!

whitelotus19 发表于 2014-12-25 09:49

第二段a是command执行返回的结果,然后对它进行移位操作,如果a=0说明成功,非0则失败,这又怎么理解呢?

看看python手册的os.system()和os.wait(),再网上找些linux上的返回状态码的资料看看。

lingdian87 发表于 2014-12-25 13:42

回复 2# whitelotus19

恩.这个的话,倒是问题不大,自己搞个测试运行一下就ok了---> set([]) 这个还是不懂
   

whitelotus19 发表于 2014-12-25 20:33

bugid=getBZsById(changeid)
    print bugid
    if bugid == set([]) :

判断getBZsById()返回空集合?那看看getBZsById()里面的内容呢
页: [1]
查看完整版本: Python 中判断函数执行结果的问题