zoukankan      html  css  js  c++  java
  • python局部变量和全局变量(6)

        在python开发中,变量也是有生命周期的,一旦周期结束,程序会自动清理暂用的空间,释放内存,变量分为两者,一种是局部变量,一种是全局变量,两者具体有什么区别呢……

     

    没听清楚

     

    一.局部变量

        一般而言在函数内部或者类中声明的变量默认都是局部变量。一旦函数结束,变量的生命周期也会结束,占用的空间会被自动释放。

        程序报错:NameError: name ‘a’ is not defined ,原因:函数内部定义的局部变量只能在函数内部使用。

     

    二.全局变量

        全局变量和局部变量相反,在函数外部或者类外部声明的变量默认为全局变量。全局变量的生命周期直到程序结束才会结束,比局部变量生命周期更长。

    a = 2
    def func1():
        print(a)
        # 函数结束,局部变量的生命周期结束
        # 全局变量直到程序结束,生命周期才结束
     
    func1()
    # 输出全局变量a
    print(a)

    输出结果:

     

    三.局部变量和全局变量的区别

        1.全局变量的生命周期是直到程序结束,而局部变量生命周期是函数结束;

        2.如果需要在函数内部修改全局变量的值,需要在函数内部为该全局变量前面加上 global 关键字, 否则该变量默认为函数内部定义的局部变量,示例代码如下:

    输出结果:

        是不上觉得很奇怪:为什么最后一个值是2,应该是1才对?

        因为没有第17行代码的话,默认a只是函数内部的一个普通局部变量,所以函数内部的print函数输出到控制台是1;函数结束,函数内部的局部变量a值生命周期结束,执行fun1函数之后的print函数输出的是全局变量a的值2.

        也就是说函数内部对a值得修改并没有成功,只有在函数内部,为全局变量加上关键字global声明为全局变量,才能修改成功,取消第17行得注释,控制台输出:

     

    思考

     

    四.重点总结

        1.注意局部变量和全局变量的生命周期;

        2.如果想在函数内部修改全局变量的值,需要加上关键字global;

     

     

    猜你喜欢:

        1.python变量

        2.pycharm设置头文件模板

     

        转载请注明:猿说Python » python局部变量和全局变量

     

    技术交流、商务合作请直接联系博主
    扫码或搜索:猿说python
    python教程公众号
    猿说python
    微信公众号 扫一扫关注
  • 相关阅读:
    Eclipse中jsp、js文件编辑时,卡死现象解决汇总
    环境安装备忘录 Nginx
    环境安装备忘录 Redis redis-slave-端口号.conf
    环境安装备忘录 Redis redis-common.conf
    环境安装备忘录 Redis
    Leetcode 131 Palindrome Partitioning(DFS思路)
    排序算法之快速排序(Quick Sort) -- 适用于Leetcode 75 Sort Colors
    谈STL的重要应用与实现
    二分图匹配相关问题
    理解操作系统相关知识
  • 原文地址:https://www.cnblogs.com/shuopython/p/12034557.html
Copyright © 2011-2022 走看看