def foo():
    print ('in the foo')
    bar()
def bar():
    print ('in the bar')
foo()

1.foo函数进入内存

2.bar函数进入内存

3.foo()开始实例化使用foo函数。

4.调用已经进入内存的foo函数,运行到第三行,这时因为第二部bar已经进入内存了,所以直接可以引用bar函数。

总结:python 函数调用的顺序是先把函数的虚拟先放进去,从上到下,一直放到foo()函数之前。然后遇到foo函数就开始跑这个foo函数。foo之后的函数还没有进入。

当然这里面还有最重要一点不是废话,其实上面的东西很浅显基本废话。这句不是废话说的是,函数放入内存,只是形式上放一下,并不是真正跑他的内容,这样就导致了第三行bar()其实是在第四行def bar()被装进内存后才进行启动的。上面4个步奏中的第一步foo函数进入内存只是形式进入,只有当3foo()开始第三行的bar(),也就是真正的第一次运行第三行的bar().

比如下面 的就是错误

def foo():
    print ('in the foo')
    bar()
foo()
def bar():
    print ('in the bar')

 

相关文章:

  • 2021-10-13
  • 2021-07-12
  • 2021-07-14
  • 2022-12-23
  • 2022-12-23
  • 2021-07-28
  • 2022-01-13
猜你喜欢
  • 2021-10-17
  • 2022-12-23
  • 2021-06-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-01
相关资源
相似解决方案