zoukankan      html  css  js  c++  java
  • Python 局部变量和全局变量

    目录

    一.前言

    零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

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

    二.Python 局部变量

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

    def func1():
        # 在函数内部定义的变量默认都是局部变量
        a = 1
        print(a)
        # 函数结束,局部变量a的生命周期结束
    
    # 由于a是局部变量,并且a的生命周期已经结束,外部再次调用局部变量a,程序会产生异常,崩溃
    print(a)
    

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

    三.Python 全局变量

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

    # !usr/bin/env python
    # !usr/bin/env python
    # -*- coding:utf-8 _*-
    """
    @Author:猿说编程
    @Blog(个人博客地址): www.codersrc.com
    @File:python局部变量和全局变量.py
    @Time:2021/3/24 00:37
    @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
    
    """
    
    a = 2
    def func1():
        print(a)
        # 函数结束,局部变量的生命周期结束
        # 全局变量直到程序结束,生命周期才结束
    
    func1()
    # 输出全局变量a
    print(a)
    
    '''
    输出结果:
    2
    2
    
    '''
    

    四.Python 局部变量和全局变量的区别

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

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

    # !usr/bin/env python
    # !usr/bin/env python
    # -*- coding:utf-8 _*-
    """
    @Author:猿说编程
    @Blog(个人博客地址): www.codersrc.com
    @File:python局部变量和全局变量.py
    @Time:2021/3/24 00:37
    @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
    
    """
    
    # 在函数内部定义的变量默认都是局部变量
    a = 2
    def func1():
        # global a # 声明 a 是全局变量,在该函数内部对a的操作就是对全局变量a的操作
        a = 1      # 如果没有上一行代码,默认a就是函数内部的局部变量,函数结束,生命周期结束
        print(a)
        # 函数结束,局部变量的生命周期结束
    
    
    func1()
    # 输出全局变量a
    print(a)
    
    '''
    输出结果:
    1
    2
    
    '''
    

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

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

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

    1
    1
    

    五.重点总结

    • 1.注意局部变量和全局变量的生命周期;
    • 2.如果想在函数内部修改全局变量的值,需要加上关键字 global ;

    六.猜你喜欢

    1. Python 简介
    2. Python Pycharm Anacanda 区别
    3. Python2.x 和 Python3.x,如何选择?
    4. Python 配置环境
    5. Python Hello World 入门
    6. Python 代码注释
    7. Python 中文编码
    8. Anaconda 是什么?Anconda 下载安装教程
    9. Pycharm 提示:this license **** has been cancelled
    10. Pycharm 设置开发模板/字体大小/背景颜色
    11. Python 列表 list
    12. Python 元组 tuple
    13. Python 字典 dict

    未经允许不得转载:猿说编程 » Python 局部变量和全局变量

    本文由博客 - 猿说编程 猿说编程 发布!

  • 相关阅读:
    fzyjojP2931 乱搞
    bzoj3730. 震波
    禁用DRM
    [学习笔记]替罪羊树
    Oracle数据库升级前必要的准备工作
    [NOI2012]骑行川藏
    oracle补丁类型
    IOI2018题解
    Oracle的Central Inventory和Local inventory详解
    CodeCraft-19 and Codeforces Round #537 (Div. 2)
  • 原文地址:https://www.cnblogs.com/shuopython/p/14890581.html
Copyright © 2011-2022 走看看