这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题
于是乎,我自己开发了一款面试宝典,希望能帮到大家,也希望有更多的Python新人真正加入从事到这个行业里,让python火不只是停留在广告上。
微信小程序搜索:Python面试宝典
或可关注原创个人博客:https://lienze.tech
也可关注微信公众号,不定时发送各类有趣猎奇的技术文章:Python编程学习
函数作用域函数作用域标志了变量的生命周期
本地&全局a = 1 def add(y,z): print y+z+a return y+z+a
-
全局变量名:a add
- 因为这个a是在这个文件内最外层注册的变量名,所以他是全局变量
- 全局变量能够在函数内部直接使用,而不需要特定的声明
- 全局变量的生命周期:在整个程序运行期间。
-
本地变量名:y,z
- y和z的注册地址在函数内部,y和z是局部变量
- 局部变量生命周期:函数运行期间
>>> a = 1 >>> def change(): ... a = 2 ... print(a) ... >>> a 1 >>> change() #打印函数内部修改之后的a 2 >>> a #打印外部a 1
- 外部的a并没有被修改
- 这是因为,函数内部赋值的变量除非声明为全局变量或非本地变量,否则均为本地变量
- 这里的a = 2,因为是在函数内部使用赋值的,所以解释器会把它当作一个函数内部的变量,他的作用域是这个函数内部
- 如果想修改一个全局变量,只需要在函数内部被修改变量前加global语句
>>> a = 1 >>> def change(): ... global a ... a = 2 ... print(a) ... >>> a 1 >>> change() #打印函数内部修改之后结果 2 >>> a #打印外部的a值 2函数嵌套
内部函数整个函数体都在外部函数的作用域;如果在外部没有对这个函数的引用,那么除了在函数体内,任何地方都不能调用这个函数
def func1():
print('1')
def func2():
print('2')
如果我们想使用函数内部定义的func2(),可以采用前项声明的方式
def func2():
pass
def func1():
print('1')
global func #声明局部函数为全局函数对象
def func2():
print('2')



