Python 全局变量使用

目录

 

1.问题描述

2.解决方法

3.Python 变量说明


1.问题描述

环境描述:使用的Python版本python3.7

python 执行会提示变量execF 和ncount 没有定义就使用,这和Python变量作用域有关系。

代码如下:

#-*-coding:utf-8 -*-
__author__ = 'Administrator'
#此处是每天判断时间是否是新的一天然后执行任务
execF = False
ncount = 0
def timerTask():
    nLocalVar = 1 #函数局部变量
    if execF is False:# 变量execF 会提示没有定义就使用
        execF = True # 变量execF 没有定义就使用
    ncount = ncount+1# 变量ncount 没有定义就使用
    print("定时器执行%d次"%(ncount))
if __name__=="__main__":
#定时器5秒之后执行
    timer = threading.Timer(5,timerTask)
    timer.start()

 

2.解决方法

修改代码如下

#-*-coding:utf-8 -*-
__author__ = 'Administrator'
#此处是每天判断时间是否是新的一天然后执行任务
execF = False
ncount = 0
def timerTask():
    global execF#声明变量使用全局作用域的变量
    global ncount#声明变量使用全局作用域的变量
    nLocalVar = 1 #函数局部变量
    if execF is False:
        execF = True
    ncount = ncount+1
    print("定时器执行%d次"%(ncount))
if __name__=="__main__":
#定时器5秒之后执行
    timer = threading.Timer(5,timerTask)
    timer.start()

声明在函数内部使用的局部变量使用的全局作用域声明的变量

3.Python 变量说明

在一开始声明的变量execF、ncount 变量都是全局变量,作用域是此代码所有的地方,但是在函数内部的时候使用的时候,特别是修改全局变量的值时,都需要用关键字 global 声明下告诉此处需要使用全局变量execF、ncount。

函数内部声明的变量,之后在函数内部作用,外部不可以使用。nLocalVar 变量就是函数局部变量,只在函数timerTask()中起作用。其他代码处不可以使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值