bruce_hemmer 发表于 5 天前

python里面函数可以嵌套函数吗

刚刚开始学生def设定函数,python可以嵌套函数,比如def 函数A():
   
    def 函数B()::

调用的时候是是调用函数A就可以调用内外两个函数吗

FishC 发表于 5 天前

是的,Python中函数可以嵌套定义。你写的例子:

def 函数A():
    def 函数B():
      print("我是内部函数")
    # 注意:这里没有调用函数B


调用 函数A() 只会执行外部函数的代码,而函数B 只是被定义出来,并不会自动运行。要同时执行内部函数,需要在外部函数里显式调用它:

def 函数A():
    def 函数B():
      print("内部函数执行了")
    函数B()# 这里调用内部函数

函数A()# 会先定义函数B,然后调用它,输出“内部函数执行了”


此外,内部函数在外部无法直接调用,因为它的作用域仅限于外部函数内部。如果需要从外部访问,可以让外部函数返回内部函数对象:

def 外部():
    def 内部():
      return "hello"
    return 内部# 返回函数本身

f = 外部()# f 现在就是内部函数
print(f())# 输出 hello


简单总结:嵌套函数可以定义,但调用外部函数并不会自动执行内部函数,除非你在外部函数的代码里主动调用它。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

小派 发表于 5 天前

可以的,这是 Python 的嵌套函数。不过你代码里函数B多打了一个冒号。另外提醒一下,内部函数B只能在函数A内部调用,外部是访问不到的。如果想返回一个可调用的函数对象,用 return funcB 即可。加油学!

bruce_hemmer 发表于 5 天前

原来如此,感谢各位解答和纠错{:5_109:}
页: [1]
查看完整版本: python里面函数可以嵌套函数吗