本帖最后由 tifa2018 于 2018-3-25 18:13 编辑
赋值很简单,就是把右边的值给左边的变量
关于函数的嵌套
我自己写的例子,你看下
- NAME = 'nicholas'
- def jack():
- name = "jack"
- print(name)
- def pony():
- name = "pony"
- print(name)
- def charles():
- name = 'charles'
- print(name)
- print(name)
- charles()
- pony()
- print(name)
- jack()
复制代码
输出结果
- jack
- pony
- pony
- charles
- jack
复制代码
执行过程如下图
执行顺序:1----2----3----3.1----3.2----3.3----3.4----3.3.1----
3.3.2----3.3.3----3.3.4----3.3.5--3.3.3.1--3.3.3.2----3.5
1 首先执行NAME = 'nicholas'语句,
2 加载def jack():函数到内存进行编译,但不执行
3 调用jack()函数,开始执行
3.1 执行name = "jack"语句
3.2 执行print(name)语句,这里由于没有global关键字,优先读取局部变量name = "jack",所以这里输出jack
3.3 加载def pony():函数到内存进行编译,但不执行
3.4 调用pony():函数,开始执行
3.3.1 执行name = "pony"语句,这里是一个局部变量
3.3.2 执行print(name)语句,这里由于没有global、nonlocal关键字,优先读取局部变量name = "pony",所以这里输出pony
3.3.3 加载charles():函数到内存进行编译,但不执行
3.3.4 执行print(name)语句,这里由于没有global、nonlocal关键字,优先读取同一层级的局部变量name = "pony",所以这里输出pony
3.3.5 调用charles():函数,开始执行
3.3.3.1 执行name = 'charles'语句,这里是个局部变量
3.3.3.2 执行print(name)语句,优先读取局部变量name = "charles",所以这里输出charles
~~charles():函数结束
~~pony():函数
3.5 执行执行print(name)语句,优先使用同层级的局部变量name = "jack",所以这里输出jack。
~~整体结束