Python 踩坑之嵌套函数


这里需要特别注意一下, Python是解释类型的语言. 会允许在定义A函数之前没有定义B函数的情况下,函数A调用函数B.

def func1():
    print "Hello fun1"
    fun2()

def func2():
    print "Hello func2"

fun1()

这样做是可以的.但是试想一下, 如果函数2也调用函数1呢?

如下:

def func1():
    print "Hello fun1"
    fun2()

def func2():
    print "Hello func2"
    fun1()

fun1()

这就是个嵌套调用.会爆栈的...
因为不是编译性语言,这种问题很难预先用语法分析出来,很可能python为了追求速度,不去分析这种错误.
因此写程序的时候要特别注意, 不要两个或者多个函数之间嵌套调用...
当然,我没有这么干,只是尝试了一下,原来python还真可以嵌套定义函数

评论关闭