purpleiris 发表于 2019-7-26 15:20:28

内嵌函数中被嵌在里边的函数不可以单独被调出来吗?

比如我定义fun1()和fun2()两个函数,然后fun2()调不出来。为什么呢?

def fun1():
        print('fun1正在被调用。。。')
        def fun2():
                print('fun2正在被调用~~~~')
        fun2()

wp231957 发表于 2019-7-26 15:25:54

咋的都得通过主函数

def f1():
    profile= {}
    def f2():
      return "我是内部函数"
    return f2   

print(f1()())

冬雪雪冬 发表于 2019-7-26 15:58:38

一般情况不能直接调用内部函数,当然可以通过闭包的方式。
def fun1():
      print('fun1正在被调用。。。')
      def fun2():
                print('fun2正在被调用~~~~')
      return fun2

>>> a = fun1()
fun1正在被调用。。。
>>> a()
fun2正在被调用~~~~
>>> a()
fun2正在被调用~~~~

不知道叫啥好 发表于 2019-7-26 16:10:09

一般情况不允许直接调用,如果非要调用。建议参考楼上答案

purpleiris 发表于 2019-7-26 16:23:52

不知道叫啥好 发表于 2019-7-26 16:10
一般情况不允许直接调用,如果非要调用。建议参考楼上答案

好哒,知道啦~~
页: [1]
查看完整版本: 内嵌函数中被嵌在里边的函数不可以单独被调出来吗?