从另一个函数调用变量 Python

-7 投票
2 回答
4710 浏览
提问于 2025-04-15 17:37

我想在一个函数里使用另一个函数中的变量。但是那个变量只在另一个函数里定义,并没有被声明为全局变量。有没有人知道怎么在当前函数里调用那个变量?下面的代码展示了'retval'这个变量的使用,但它是在另一个函数里定义的。

def email_results():

    if make.retval > 0:
        os.system('python email_success.py')
    else: 
        os.system('python email_failure.py')

if __name__ == '__main__': myObject = email_results()

谢谢

我定义这个变量的函数是:

def make():

    if os.path.exists(t):

        command = "export ROOTDIR="+rootDir+"; "
        command += "export PROJECT="+project+"; "
        command += "export BUILD_DIR=$ROOTDIR/$PROJECT/basebuild; "
        command += "export AD_EXEC_DIR=$BUILD_DIR/output_dev; "
        command += "export BLDTARGET=MVArm9; "
        command += "export PROFILE=release; "
        command += "cd $ROOTDIR/$PROJECT; "
        command += "make > "+logFileName+" 2>&1"

        print "The command that I will be executing is:"
        print command

    #executing make command

        retval = os.system(command)
        print "retval=", retval 
        return retval

    if __name__ == '__main__': myObject = make()

2 个回答

1

应该用make()而不是make.retval;前者是一个函数调用,后者是一个对象的成员(有时叫属性)引用。因为你把make定义成了一个函数,所以它可以被调用,但它并没有一个叫retval的成员。

7

你的 make.retval 可能是另一个函数 make 的结果,但根据你模糊的问题,我猜它没有返回 retval

你可以试试这个

def make( ):
    etc. 
    return retval

def email_results( retval ):
    etc.

if __name__ == "__main__":
    retval= make()
    email_results( retval )

请找一本好的编程书籍来读一读。你遇到的问题其实是编程的基本概念,而不仅仅是 Python 的问题。

撰写回答