开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第19天,点击查看活动详情
您好,我是游手好闲的小羊!
函数------变量的作用域
局部变量和全局变量区别
说明:局部变量是在函数内部定义的变量,只能在函数内部使用;
全局变量是在函数外部定义的变量(没有定义在某⼀个函数内),所有函数 内部都可以使用这个变量。
提示:在其他的开发语⾔中,大多不推荐使⽤全局变量—— 可变范围太⼤,导致 程序不好维护!
局部变量
局部变量是在函数内部定义的变量,只能在函数内部使⽤;
函数执⾏结束后,函数内部的局部变量,会被系统回收;
不同的函数,可以定义相同的名字的局部变量,彼此之间不会产⽣影响;
局部变量的作⽤
在函数内部使⽤,临时保存函数内部需要使用的数据
def my_func1():
a = 10
def my_func2():
a = 20
my_func1() # 调用my_func2 函数,不会影响a 的值
print("a = %d" % a)
my_func2()
局部变量的生命周期
- 所谓⽣命周期就是变量从被创建到被系统回收的过程;
- 局部变量在函数执⾏时才会被创建;
- 函数执⾏结束后局部变量被系统回收;
- 局部变量在⽣命周期内,可以⽤来存储函数内部临时使⽤到的数据。
全局变量
全局变量是在函数外部定义的变量,所有函数内部都可以使用这个变量。
为了保证所有的函数都能够正确使⽤到全局变量,应该将全局变量定义放在
其他函数上方。
# 定义一个全局变量num
num = 100
def my_func1():
print(num)
def my_func2():
print(num)
my_func1()
my_func2()
全局变量与局部变量重名
# 定义一个全局变量num
num = 100
def my_func1():
# 函数内部定义一个变量和全局变量重名
num = 1
# 全局变量num 的值并没有改变
my_func1()
print(num)
注意:只是在函数内部定义了⼀个局部变量⽽已,只是变量名相同—— 在函数内 部不能直接修改全局变量的值。
global 关键字
如果在函数中需要修改全局变量,需要使⽤global 进⾏声明
# 定义一个全局变量num
num = 100
def my_func1():
# 函数内部使用global 关键字声明全局变量num
global num
num = 1
# 全局变量num 的值被my_func1 函数改变
my_func1()
print(num)
我是爱分享的小羊,每天分享一点点!