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

Python在另一个函数中调用内部函数,python,scope,nested-function,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()) 现在我想创建一

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

例如:

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_解决方案值(因为实际代码中有更多的行)。这是我目前的工作,但我想看看是否有更简单的方法

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

print(m3())
我这样做是为了一个赋值,它使用自动加载器,只计算函数内部的代码,而不是全局范围,m1()和m3()将被计算,但如果我将m2()放入全局范围,它将不会被计算。希望它有意义。这是我在这里的第一个问题


谢谢

你想要这样的东西吗:

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())

此方法帮助您获取外部函数内部的变量。

如果将
m2()
函数置于
m1()
外部,
m3()
将识别它。您真的需要嵌套
m2()
?由于您的函数是全局定义的,所以编写“没有任何全局变量”的代码是不可能的,我不明白在全局作用域中定义一个额外的函数如何使它对您的赋值无效。@TadhgMcDonald Jensen这可能是某个人的限制,他不理解函数是值,函数名是变量。它们的意思是“没有全局整数、字符串等”,基本上,我试图避免使用复制和粘贴来重新创建我在m2()中执行的所有步骤,以获取我需要在另一个函数中使用的返回值。我并不真的需要m1()中的嵌套函数,但希望在以后的函数中使用m2()返回值,但不知道如何引用它。我目前的工作就是复制和粘贴。我将它用于一个使用自动签名器的任务,并且不识别全局范围内的任何内容(它正在寻找评估函数)。