从另一个函数Python调用变量

时间:2010-01-04 12:05:34

标签: python

我试图调用一个变量用于另一个函数。该变量仅在另一个函数中,并未声明为全局变量。有谁知道如何调用其他变量。下面的代码显示了正在使用的'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 个答案:

答案 0 :(得分:7)

你的make.retval是(我猜你的模糊问题)另一个函数make的结果,由于某种原因,它不会返回retval

这样做

def make( ):
    etc. 
    return retval

def email_results( retval ):
    etc.

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

请找一本关于编程的好书并阅读它。你在编程的基本概念方面遇到了问题,而不是Python。

答案 1 :(得分:1)

应该是make()而不是make.retval;第一个是函数调用,第二个是对象成员(有时称为属性)引用。由于您将make定义为函数,因此它是可调用的,但没有名为retval的成员。