Python局部变量(含义、作用、生命周期等)

定义:

局部变量是在函数内部定义的变量,只能在函数内部使用。

全局变量是在函数外部定义的变量(没有定义在某一个函数内),所有函数内部都可以使用这个变量。

注意: 在其他的开发语言中,大多不推荐使用全年变量,因为可变范围太大,导致程序不好维护。

局部变量:

  1. 局部变量是在函数内部定义的变量,只能在函数内部使用
  2. 函数执行完成后,函数内部的局部变量,会被系统回收
  3. 不同的函数,可以定义相同的名字的局部变量,但是彼此之间不会产生影响

局部变量的作用

在函数内部使用,临时保存函数内部需要使用的数据

一、局部变量只能在函数内部使用

通过代码来演示一下,在函数内部定义的变量不能在函数外部被使用

def demo1():
    # 定义一个局部变量
    num = 100
    print("在函数demo1中的变量是%d" % num)

# 调用函数
demo1()

以上是没有任何问题的一串代码,执行结果是: 在函数demo1中的变量是100

下面开始尝试一下,能否在函数的外部用这个num变量呢?

 

可以看出,在打印num这个变量的时候PyCharm就已经提示我们代码出错了,然而我们为了进一步验证不能打印出num变量,再看下执行的报错结果,没有定义num这个变量。如下图:

 

 结论:在函数内部定义的变量不能在其他位置使用

再看下在其他函数的内部能否使用num这个变量呢?

 

同样在PyCharm中已经红线提示了有错误,再代用函数demo2运行看看下效果同样报错了,如下图:

 

以上报错信息可以看出,第一个报错信息告诉我们出错在代码的第11行调用函数demo2,第二个报错信息说在代码的第7行在函数demo2中找不到变量num

此时我们注释掉demo2里的代码块,会提示我们缩进代码错误:IndentationError: expected an indented block,此时我们利用pass这个占位符来保证函数体代码结构的完整,此时程序又能正常的运行了。

 

 

二、局部变量的生命周期

定义:所谓生命周期就是变量从创建到被系统回收的过程。

(把创建比作出生,把系统回收比较死亡,生命周期好比一个人从出生到死亡的这一段过程)

局部变量在函数执行时才会被创建,函数执行结束后局部变量被系统回收。

局部变量在生命周期内,可以用来存储函数内部临时使用到的数据。

可以利用在代码中的debugger来看看函数的整个执行过程。首先在函数demo1前打个断点。

 

第3行代码被执行完成之后就可以看到num这个变量了,然后执行到第四行代码完成后这个函数就执行完成了,num变量也被回收了。

 

三、不同函数内的同名局部变量

不同的函数,可以定义相同的名字的局部变量,但是彼此之间不会产生影响

def demo1():
    # 定义一个局部变量
    num = 100
    print("在函数demo1中的变量是%d" % num)
    
def demo2():
    num = 99
    print("在函数demo2中的变量是%d" % num)
    
# 调用函数
demo1()
demo2()

执行结果:

 

以上两个函数中的相同名字的变量num之间没有任何的关系,好比两个班级中各有一个相同的名字的同学一样,他们在各自的班级之间互不干扰影响。

以上是局部变量的全部介绍,后面主要介绍全局变量,这些都属于python基础教程,如果你没有一点编程方面的基础我想这个也是能看得懂的,如果不懂可以私信留言。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王子玉博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值