Python定义一个全局变量,HTML全局变量

  Python定义一个全局变量,HTML全局变量

  今天在写以下计算机编程语言代码时出现了问题。该段代码根据一些统一资源定位器下载视频:

  # coding=utf-8 def save _ case _ infos(case _ URL):for case _ URL in case _ URLs:#一些下载代码.# 打印已下载的视频个数# 希望访问全局变量case _ total _ num case _ total _ num=1 print( current count: str(case _ total _ num))#全局变量,表示已下载的视频个数case_total_num=0#下载视频文件URL=[r http://cyn hard。com/live/001 ,rhttp://cynhard.com/live/002 ,rhttp://cynhard。com/live/003 ]保存案例信息但是在运行时报以下错误:

  追溯(最近一次调用最后):文件" G:\ projects \ python \ global test。py”,第21行,在模块保存案例信息(URL)文件" G:\ projects \ python \ global test。py”,第10行,在save _ case _ infos case _ total _ num=1 unboundlocalrerror:在赋值之前引用了局部变量"案例总数"意思是说案例总数为局部变量,在使用它之前没有被赋值蟒蛇。并没有按照我的意图将案例总数当成全部变量。看来在函数内无法直接使用全局变量。

  有什么办法能在函数内使用全局变量呢?根据官方文档,可以用全球的语句:

  global语句是适用于整个当前代码块的声明。这意味着列出的标识符将被解释为全局标识符。如果没有global,就不可能给全局变量赋值。

  意思是说全球的语句可以声明一个或多个变量为全局变量。该声明仅在当前代码块中有效。除此之外,没办法访问全局变量。

  于是,在上面的代码中加入全球的声明语句就可以达到目的了:

  # coding=utf-8 def save _ case _ infos(case _ URL):global case _ total _ num # global声明对于案例_url中的案例_网址:#一些下载代码.# 打印已下载的视频个数# 希望访问全局变量case _ total _ num case _ total _ num=1 print( current count: str(case _ total _ num))#全局变量,表示已下载的视频个数case_total_num=0#下载视频文件URL=[r http://cyn hard。com/live/001 ,rhttp://cynhard.com/live/002 ,rhttp://cynhard。com/live/003 ]保存案例信息用全球的声明多个变量需要用逗号分隔:

  # coding=utf-8 def save _ case _ infos(case _ URLs):全局成功总数,失败总数#多个变量用逗号分隔对于案例_ urls中的case _ URL:ok=False #一些下载代码.如果ok:succeeded _ total _ num=1 else:failed _ total _ num=1 print( succeeded: str(succeeded _ total _ num) failed: str(failed _ total _ num))#全局变量,下载成功和失败的视频个数succeeded _ total _ num=0 failed _ total _ num=0 #下载视频文件URL=[r http://cyn hard。com/live/001 ,rhttp://cynhard.com/live/002 ,rhttp://cynhard。com/live/003 ]保存案例信息在使用全局变量的场合,也可用类变量代替:

  # coding=utf-8 def save _ case _ infos(case _ URLs):for case _ URL in case _ URLs:ok=False #部分下载代码.如果ok:g . succeeded _ total _ num=1 else:g . failed _ total _ num=1 print( succeeded: str(g . succeeded _ total _ num) failed: str(g . failed _ total _ num))#将全局使用的变量定义在类中类别g:succeeded _ total _ num=0 failed _ total _ num=0 #下载视频文件URL=[r http://cyn hard。com/live/001 ,rhttp://cynhard.com/live/002 ,rhttp://cynhard。com/live/003 ]保存案例信息这样便去掉了全球的声明,但是每一次用到类变量的时候都需要冠以类名。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: