首页 > 解决方案 > 返回值后,在 main func 中的值已更改

问题描述

我尝试了与订阅一起使用的编写函数。当我打印价值时,我得到了我的期望,但是当我返回价值时,我得到了其他东西。我在我的输出中添加链接。当我在函数中打印时,我在返回主脚本后得到了我的期望,我得到了其他值。

输出是:

/cad/workSpaces/EDISON_cadm/.cad
poooo
f-----  1       - - - ./.cad/runsets/pvs/t.00_00_01_scr/RCE_TS18SL_QRC_3M1T3_USG/EAD/1/setup/TSL_0.18_3M1T3_USG_setup.ini
None
#!/usr/bin/python3

import os
import sys
import subprocess
import soscmd
import re

if __name__== '__main__':
    if len(sys.argv) < 1:
            print ("Usage: '%s <Object Name> '" %sys.argv[0])
            sys.exit(1)
    objName = sys.argv[1]

    class Terminal:
        def __init__(self, command=None):
            print ("poooo")
            self.command = None
            self.stderr = subprocess.STDOUT
            self.stdout = subprocess.PIPE
            if command is not None and command !='':
                self.command = command

        def run(self, command=None):
            if command is not None and command !='':
                self.command = command
            if self.command is not None:
                cmd_elems =  self.command.split()
                sub_proc = subprocess.Popen(cmd_elems, stderr=self.stderr, stdout=self.stdout)
                output, error = sub_proc.communicate()
                aaa = output.decode("utf-8").splitlines()
                print(aaa[0])
                #sub_proc.kill()
                return aaa[0]       
            #return None

    def pysos(cmd):
        term = Terminal()
        term.run('soscmd ' + cmd)
    print (objName)
    if os.path.isdir(objName):
        result = pysos('status -sall /cad/workSpaces/EDISON_cadm/.cad')
        print (result)
        i = 0
            #while i < len(result):
                #   print (result)
                    #print (listObject[i])
                #   i += 1
    else:
        print ("ovedddd")

标签: python

解决方案


推荐阅读