美文网首页python交流区
局部变量和全局变量

局部变量和全局变量

作者: Mouse_Hang | 来源:发表于2019-06-29 21:18 被阅读36次

1、局部变量

局部变量:它是定义在函数内部的变量,使用范围只在函数内部,其作用是在函数内部临时的保存函数内部所需要的数据,那么为什么是“临时保存”呢?因为局部变量的生命周期是从函数执行到该行代码块开始到函数执行结束。不同函数之间具有相同名字的局部变量互不干涉,可以在各自的函数中独立使用。下面是对局部变量的演示:

def demo_01():
    exm = 66
    print("demo_01 --> %d" % exm)


def demo_02():
    exm = 99  # 在demo_02中也定义一个exm的局部变量
    print("demo_02 --> %d" % exm)


demo_01()  # 输出为:demo_01 --> 66
demo_02()  # 输出为:demo_02 --> 99

2、全局变量

全局变量:它是在函数之外定义的变量,该变量的使用范围是可以在定义它的整个模块中使用,即不仅可以在函数之外使用,也可以在函数之中使用。

注意:函数体中使用赋值语句并不会修改全局变量的值。当全局变量和函数中的局部变量名字一样时,函数体内部优先使用函数体中的局部变量。 即:
1、当函数中使用变量时,首先会在函数内部查找该变量,如果有该变量,直接使用;
2、如果函数内部并没有该变量,那么函数会查找在函数执行之前的代码中是否有该全局变量,如果有则直接使用;
3、如果都没有,则程序报错。
举例如下:

exm = 20

def demo_01():
    print("demo_01 --> %d" % exm)


def demo_02():
    exm = 99  # 在demo_02中也定义一个exm的局部变量
    print("demo_02 --> %d" % exm)
    print(num)  # 程序报错;NameError: name 'num' is not defined
demo_01()  # 输出为:demo_01 --> 20
demo_02()  # 输出为:demo_02 --> 99
# 发现当函数体中局部变量和全局变量名字一样时,会优先使用函数体中的局部变量,并且使用复制语句并没有修改全局变量的值。

但有时确实需要在函数体内部修改全局变量,此时就要用到global关键字。用法是在函数体中使用global关键字声明全局变量即可。

exm = 20


def demo_01():
    global exm
    exm = 50
    print("demo_01 --> %d" % exm)


def demo_02():
    print("demo_02 --> %d" % exm)


demo_01()  # 输出为:demo_01 --> 50
demo_02()  # 输出为:demo_02 --> 50

相关文章

  • python

    函数内全局变量赋值 Python中有局部变量和全局变量,当局部变量名字和全局变量名字重复时,局部变量会覆盖掉全局变...

  • Swift-全局变量、局部变量以及类型属性

    全局变量和局部变量 全局变量和局部变量 计算属性和属性观察器所描述的功能也可以用于全局变量和局部变量。全局变量是在...

  • C语言特性(局部变量和全局变量)

    局部变量和全局变量 局部变量 局部变量根据定义形式的不同,又分为如下三种。 全局变量 在一个函数内部,如果全局变量...

  • 15 C变量的作用域

    1、局部变量和全局变量

  • 9道常见C语言面试题

    1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量...

  • python基础

    1.局部变量、全局变量 在函数内部修改全局变量时局部变量会创建一个和全局变量一样名称的局部变量,在更改的时候只会更...

  • 第10天C语言(00):笔记总结

    01-全局变量和局部变量-基本概念 02-内部全局变量和外部全局变量 03-static对局部变量-作用 04-s...

  • Python基础教程——全局变量和局部变量的应用

    前言 学编程的总离不开全局变量和局部变量,那么,首先我们要知道局部变量和全局变量的定义: 局部变量:定义在函数内部...

  • C/C++知识点分享(16)

    1、statac全局变量、局部变量、函数与普通全局变量、局部变量、函数,static全局变量与普通的全局变量有什么...

  • C的自我修养

    关于全局变量、局部变量和static 变量有全局变量、局部变量之分。全局变量的作用域是从声明的那一行开始,默认是可...

网友评论

    本文标题:局部变量和全局变量

    本文链接:https://www.haomeiwen.com/subject/uhhmcctx.html