首页 > 解决方案 > 如何在另一个函数中使用另一个函数中的函数中的变量

问题描述

def func():
    a = 'abc'
    def func2():
        b = 'bcd'
        return b
    return a

def func3():
    c = func()()
    return c

print(func3())

如何在 func3 中使用来自 func2 的变量 b 的值,上面是我尝试过的,但出现错误:

Traceback (most recent call last):

  File "<ipython-input-30-cfaa7d1d3a78>", line 12, in <module>
    print(func3())

  File "<ipython-input-30-cfaa7d1d3a78>", line 9, in func3
    c = func()()

TypeError: 'str' object is not callable

标签: python

解决方案


欢迎来到 SO。

  1. 正如评论者所指出的,您需要删除()after的额外内容func()

  2. 你从不func2()在任何地方打电话。


边注

你想用这段代码完成什么让你感到困惑......即你想要两者都a可用bfunc3()?或者只是b


如果您只想返回b,那么c=b下面的代码将完成该操作。

def func():
    a = 'abc'
    def func2():
        b = 'bcd'
        return b
    return func2()

def func3():
    c = func()
    return c

print(func3())

这将产生bcd.


如果您想返回ab那么c=('abc', 'bcd')下面的代码将完成此操作。

def func():
    a = 'abc'
    def func2():
        b = 'bcd'
        return b
    return a, func2()

def func3():
    c = func()
    return c

print(func3())

这将产生abc,bcd


推荐阅读