如何调用另一个函数中定义的函数?

时间:2014-04-24 08:02:38

标签: python

今天我发现我找不到在另一个函数中调用函数的方法。除非我在main函数中显式返回它或使用闭包结构。但我想知道是否有另一种方式来称呼它。或者它不是那么有线,python允许我在函数内定义函数,但不允许我以后以一种简单的方式使用它们!

我的代码是这样的,我想在定义之后调用b(),c(),d()。

def a():
    def b():
        print 'b'
    def c():
        print 'c'
    def d():
        print 'd'
    print 'a'

>>> a()
a
>>> a.b
AttributeError: 'function' object has no attribute 'b'
>>> a.b()
AttributeError: 'function' object has no attribute 'b'

1 个答案:

答案 0 :(得分:3)

您不能在a范围之外调用这些函数。它们仅限于a的范围。

您可以使用与您对函数中其他本地名称完全相同的方式来考虑这些函数。例如:

def foo():
    bar = 42

正如您无法在定义范围之外引用您的本地功能一样,您无法在bar范围之外引用foo()