Disclaimer: This article is a blogger original article, follow the CC 4.0 BY-SA copyright agreement, reproduced, please attach the original source link and this statement.
# @time:2019/10/26 10:38
# @Author:coco
# @File:02函数的作用域.py
# @software:PyCharm
"""
函数的作用域:在函数内部中定义的变量,只有在函数中才能够使用
局部变量:定义在函数内部的变量叫做局部变量
全局变量:直接定义在文件中的变量,叫做全局变量,在该文件中任何地方都访问
"""
a = 100
def func():
b=100
print(a)
print(b)
func()
operation result:
# @time:2019/10/26 10:47
# @Author:coco
# @File:03在函数内部定义全局变量.py
# @software:PyCharm
# 加一个global,让b变成全局变量,不加会报错
# 在函数内部声明全局变量
def func():
global b
b = 100
func()
print(b)
# 扩展知识点
# aa是一个全局变量,所以可以func2可以使用
def func1():
aa = 11
def func2():
print(aa)
func2()
func1()
# 内部嵌套函数可以用nonlocal
def func3():
cc = 11
def func4():
nonlocal cc #使用nonlocal声明外部函数的局部变量,可以在嵌套函数内部修改外部函数的局部一
cc += 1
print(cc)
func4()
print(cc)
func3()
operation result:
# @time:2019/10/26 11:02
# @Author:coco
# @File:04全局变量和局部变量练习.py
# @software:PyCharm
""""
变量的查找过程:由内向外去找的,先找自身这一层作用域名有没有,如果没有才会去外面找
"""
a = 100
# 结果是报错:在func()函数中定义了一个局部变量,在定义前使用了,函数内部的a是没有的
# 如果在函数内部定义的局部变量和全局变量重名,那么最好把局部变量的定义放在该函数的最前面
def func():
print(a)
a = 11
# a=11 #这样不会报错
# print(a)
func()
print(a)
operation result: