路飞学诚-python集训-第一章
在函数中修改全局变量
在函数中修改全局变量需要用到 global 关键字
t = '测试' def test(): t = '测试1' print(t,id(t)) test() print(t,id(t))
可以从结果中看出函数中的t = ‘’测试1‘’并没有对全局变量t进行修改,那么怎样才能在函数中修改全局变量呢?
这里我们就需要用到global关键字来声明全局变量
t = '测试' def test(): global t t = '测试1' print(t,id(t)) test() print(t,id(t))
从测试结果上看,函数运行之后,函数内部的t的内存地址与全局变量t的内存地址相同,说明函数中t不再是局部变量,而是对全局变量的修改。
来,让我们把掌声送给global。
- 在函数中修改列表
由于一些不知名的失误,原来写的没保存上,幸好我有截图!!!
- 嵌套函数
什么是嵌套函数,就好比俄罗斯套娃。一个娃娃里面还套着另一个娃娃。嵌套函数就是一个函数里面还有另一个函数。
[code]def func1(): print(123) def func2(): print(234) func1()这就是一个简单的嵌套函数。现在问题来了,这段代码的运行结果是什么呢???我们来执行一下。
看到结果,你会不会有一丝丝差异与迷茫?
为什么只执行了func1??
那是因为函数在定义之后。如果没有被调用,那么函数的内部代码永远不会被执行。
那怎样才能显示234呢?我们只需要调用func即可。
def func1(): print(123) def func2(): print(234) func2() func1()运行结果:
让我么来看接下来的这段代码。
age=18 def func1(): age = 73 print(age) def func2(): age=84 print(age) func2() func1()让我们来猜测下结果,很简单就是73,84.不再赘述。标准的按顺序执行。那么请看下面的这段代码:
age=18 def func1(): age = 73 print(age) def func2(): print(age) func2() func1()这段代码的执行结果是什么呢?让我们一起来分析一下
首先第一个print输出73没什么问题,但在执行函数func2时,函数func2中并没有age变量,这时,就会向上一层寻找age变量。理论上分析,输出的应该也是func1中的73,让我们来验证一下。
事实证明,我们的分析是正确的,来继续下一段代码:
age=18 def func1(): def func2(): print(age) age=73 func2() func1()老规矩,继续分析。当代码执行func2之前,已经神明了age=73,所以func2中找到的应该是func1中的局部变量。
我们来验证一下:
事实证明,我们是对的!来请看下面这段代码:
age=18 def func1(): def func2(): print(age) func2() age = 73 func1()这次我们把age = 73放到了func2的下面;来继续分析结果:
直到func2被调用,func1中都没有声明变量age,理论上讲,这个时候执行func2,由于func1中没有被声明的变量age,那么是不是就要再往上一层查找,找到全局变量age呢???我们来验证一下。
omgd!报错了,为什么报错。可能是python有选择困难症。虽然执行func2时age=73 还没有被声明,但是他也是存在的,python就不知道应该找这个func1中的未声明的局部变量,还是声明了的全局变量。
今天就先到这里,我们明天见
阅读更多
- 路飞学城-Python开发-第一章
- 路飞学诚-python集训营-第二章-递归
- Python 第一章 基础知识
- 第一章 安装和运行python
- 第一章:绪论-Python开发工具的安装
- 麦子学院python教程 第一章
- 路飞学城Python-Day142
- 第一章 python中重要的数据结构(上)
- 第一章 在linux下python读串口 存MYSQL数据库(703N)
- 路飞学城Python-Day7(practise)
- Python爬虫学习==>第一章:Python3+Pip环境配置
- 路飞学城Python-Day10(practise)
- Python内建对象(Python 源码剖析第一章)
- Invent Your Own Computer Games with Python(第二版)(第一章(上))
- 路飞学城Python-Day20(元类的练习题)
- Head First Python第一章:列表
- Python 第一章 基础知识
- 第一章 安装 Python