• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python中全局变量和局部变量的理解与区别

    前言

    学过编程的人应该对全局变量与局部变量这两个名词并不陌生,Python也同多数编程语言一样,也有全局变量与局部变量的概念

    但是与其他编程语言又有所不同

    全局变量与局部变量两者的本质区别就是在于作用域

    用通俗的话来理解的话,

    全局变量是在整个py文件中声明,全局范围内都可以访问

    局部变量是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方调用,程序就爆掉了

    如果在函数内部定义与某个全局变量一样名称的局部变量,就可能会导致意外的效果,可能不是你期望的。因此不建议这样使用,这样会使得程序很不健全

    直接来看几个例子来理解全局变量和局部变量的区别吧:

    Demo1:

    def fun(x):
     y=2
     print("乘法的运行结果:",x*y)
    num1=1
    print("初始num1=",num1)
    fun(num1)
    print("y的值是:",y)

    运行结果:

    报错的原因是因为试图访问局部变量,但是访问的地方不在该变量y的作用域中

    Demo2:

    def fun():
     num1=2
     print("函数内修改后num1=",num1)
    num1=1
    print("初始num1=",num1)
    fun()
    print("运行完函数后num1=",num1)

    运行结果:

    可以看到在函数内部对全局变量的修改后,在函数执行完毕,修改的结果是无效的,全局变量并不会受到影响

    再看:

    Demo3:

    def fun():
     num1*=2
     print("函数内修改后num1=",num1)
    num1=1
    print("初始num1=",num1)
    fun()
    print("运行完函数后num1=",num1)

    运行结果:

    报错了。这是因为在fun()函数使用了局部变量num1,它只是个跟全局变量同名的局部变量,使用前还是要赋值,因此再次强调不要这样使用

    global关键字

    如果真的想要在函数体内修改全局变量的值,就要使用global关键字

    Demo4:

    def fun():
     global num1
     num1=2
     print("函数内修改后num1=",num1)
    num1=1
    print("初始num1=",num1)
    fun()
    print("运行完函数后num1=",num1)

    运行结果:

    使用global关键字就是告诉python编译器这个变量不是局部变量而是全局变量,其实有点像是"引用"的意思

    nonlocal关键字

    再看看另一个跟变量相关的关键字nonlocal,字面意思就是指当前的这个变量不是局部变量。nonlocal是Python3.0中新增的关键字,python2.x不支持

    先来看看下面这段代码

    def fun():
     num2=3
     def fun2():
     num2*=2
     print("num2=",num2)
     return fun2()
     
    fun()

    运行结果:

    错误的原因跟前面的差不多,就是使用了未定义的局部变量,然而num2也不是全局变量,只是fun2函数的外层变量,强行使用global定义num2的话同样会报错(不信你试试)

    这时候需要使用nonlocal关键字:

    def fun():
     num2=3
     def fun2():
     nonlocal num2
     num2*=2
     print("num2=",num2)
     return fun2()
     
    fun()

    运行结果:

    如此,程序就能正常执行

    总结

    到此这篇关于Python中全局变量和局部变量的文章就介绍到这了,更多相关Python全局变量和局部变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • python函数局部变量、全局变量、递归知识点总结
    • 解析python的局部变量和全局变量
    • Python3.5局部变量与全局变量作用域实例分析
    • Python全局变量与局部变量区别及用法分析
    • 从局部变量和全局变量开始全面解析Python中变量的作用域
    • 浅谈Python从全局与局部变量到装饰器的相关知识
    上一篇:Python抖音快手代码舞(字符舞)的实现方法
    下一篇:python gui开发——制作抖音无水印视频下载工具(附源码)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python中全局变量和局部变量的理解与区别 Python,中,全局,变量,和,局部,