Python在另一个函数内部调用内部函数

时间:2016-12-22 14:19:59

标签: python scope nested-function

编辑! 我想引用外部函数之外的内部函数返回值,实际上是在另一个函数内部。

示例:

def m1():
    def m2():
        x= 'A'
        y= 'B'
        pre_solution = x+y
        return pre_solution
    pre_solution = m2()
    m1_solution = pre_solution*2
    return m1_solution

print(m1())

现在我想创建一个新函数,我需要m2()的返回值在其中:

def m3():
    pre_solution = m2()
    m3_solution = pre_solution*3
    return m3_solution

print(m3())

我收到m2未定义的错误。我需要获得pre_solution值而不使用复制和粘贴(因为真正的代码中有更多的行)。这是我目前的工作,但我想看看是否有更简单的方法。

def m3():
    x= 'A'
    y= 'B'
    pre_solution = x+y
    m3_solution = pre_solution*3
    return m3_solution

print(m3())

我正在为使用自动编程器的作业执行此操作,并且只评估函数内部的代码,而不是全局作用域,m1()和m3()将被评估但是如果我将m2()放入全球范围它不会成功。希望它有意义。这是我在这里的第一个问题。

谢谢

1 个答案:

答案 0 :(得分:0)

你想要这样的事情:

def m1():
    def m2():
        m2.var = "Cat" * 2
        return m2.var
    m1.x = m2()
    return m1.x + 'Dog'

m1()

def m3():
    y = m1.x
    z = y * 2
    return z

print(m3())

此方法可帮助您将变量置于外部函数中。