python全局变量的用法,python中全局变量和局部变量的定义

  python全局变量的用法,python中全局变量和局部变量的定义

  Python的全局变量和局部变量

  1.变量

  变量:临时存储数据的容器:工具!生活:私人工具;公共工具;

  2.变量类型

  每个人都可以使用:全局变量只有当前函数可以使用的变量:局部变量。

  python变量的顺序:当前作用域中的局部变量-外部作用域变量-当前模块中的全局变量-python内置变量

  3.声明全局变量

  声明一个全局变量,在函数之外声明的变量:全局变量,从声明的地方开始~这个变量可以用在当前文件的所有位置。

  Jobs=爬虫开发工程师 #全局变量

  def eat():

  食物=“焖菜”#局部变量

  打印(局部变量:,食物)

  打印(全局变量:,作业)

  #执行函数中的代码

  吃()

  #打印数据

  打印(全局变量:,作业)

  Print(局部变量:,food) #此处出错,因为food是一个局部变量

  未解析的引用“food”无法解析(解释)引用的变量:food。错误:名称 food 未定义变量food未定义!

  4.修改全局变量。

  变量:全局变量局部变量全局变量:在函数外部声明并可从当前文件中声明的开头访问的变量局部变量:在函数内部声明并只能在当前函数中访问的变量;出函数了~没人能解析。

  如果要在函数中使用全局变量:我该怎么做?1)如果函数中只查询全局变量的值:直接使用。2)如果要在函数中修改全局变量的值:全局变量名。函数中global的含义:1)全局变量名称:表示函数中要使用的具有指定名称的全局变量。2)全局变量名称:意思是在函数中声明一个全局变量。

  示例:

  Name=kadttt #全局变量

  Print(函数外部查询变量:,名称)

  定义测试():

  Global name #声明要在函数中使用的全局变量名。

  Global msg #在函数中声明并定义了一个全局变量msg。

  Print(函数内部查询变量:,name) # kadttt

  打印(“函数内部操作变量”)

  年龄=18岁

  打印(“函数:”中的局部变量,年龄)

  Name=tom #修改全局变量名的值

  msg= hello函数中的全局变量

  # UnboundLocalError:在赋值前引用了局部变量“name”

  #未绑定的局部变量错误:必须在修改前声明局部变量名称!

  #如果在函数中定义了具有相同全局变量名的变量~默认函数中的变量是具有相同名称的局部变量。

  测试()

  Print(再次在此打印全局变量:,name) # tom

  打印(邮件)

  5.函数中全局变量和局部变量的重命名问题。

  示例:

  name=kadttt

  定义测试():

  # print(name) #这里是错误位置,因为name变量下面赋了一个值,这个变量就成了局部变量。

  原因:函数中赋了变量名,但没有用global关键字引入全局变量。

  因此name成为函数中的一个局部变量。

  在使用变量的数据之前,必须声明和定义变量;第10行代码没有声明先用,所以有错误!

  :返回:

  Name=tom #如果在函数中给一个与全局变量同名的变量赋值:这个变量会被立即解释为局部变量。

  print(name)# If[全局变量局部变量]同名;函数优先考虑局部变量;不会影响全局变量的数据

  Print(全局变量:,名称)

  测试()

  Print(全局变量:,名称)

  6.extended nonlocal关键字用于在函数或其他作用域中使用外部(非全局)变量。

  非局部声明的变量不是局部变量或全局变量,而是外部嵌套函数内部的变量。

  def make_counter():

  计数=0

  定义计数器():

  非局部计数

  计数=1

  返回计数

  返回计数器

  定义make_counter_test():

  mc=make _计数器()

  打印(mc())

  打印(mc())

  打印(mc())

  make _计数器_测试()

  上面的输出是:1 2 3

  重要:在项目开发过程中,除了公共数据,其他变量,尽量使用局部变量,避免使用全局变量。

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

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