精华内容
下载资源
问答
  • python 全局变量 局部变量.pdf
  • 其中a就是全局变量,而b是局部变量局部变量只在函数体内部有效,出了函数体,外面是访问不到的,而全局变量则对下面的代码都有效。 在函数体内部使用全局变量 全局变量可以直接在函数体内容部使用的,你可以直接...

    目录

    在函数体内部使用全局变量

    global关键字


    局部变量就是定义在一个函数体内部的变量

    全局变量是定义在外面的变量

    比如:

    a = 1
    def f():
        b = 2
    
    

    其中a就是全局变量,而b是局部变量。局部变量只在函数体内部有效,出了函数体,外面是访问不到的,而全局变量则对下面的代码都有效。

    在函数体内部使用全局变量

    全局变量可以直接在函数体内容部使用的,你可以直接访问,但是注意的是,如果对于不可变类型的数据,如果在函数里面进行了赋值操作,则对外面的全局变量不产生影响,因为相当于新建了一个局部变量,只是名字和全局一样,而对于可变类型,如果使用赋值语句,同样对外部不产生影响,但是使用方法的话就会对外部产生影响。

    如下面的代码:

    g_b = 3;g_l1 = [1,2];g_l2 = [1,2,3]
    def t1():
        g_b = 2
        g_l1 =[]
        g_l2.append(7)
    t1(g_b,g_l1,g_l2)
    print(g_b,g_l1,g_l2)
    

    global关键字

    上面说到,如果使用的是赋值语句,在函数内部相当于新建了一个变量,并且重新给了指向,但是有时候我们想把这个变量就是外部的那个全局变量,在赋值操作的时候,就是对全局变量给了重新的指向,这个时候可以通过global关键字表示我在函数里面的这个变量是使用的全局那个。使用方法如下:

    g_b = 3
    def t1():
        global g_b
        g_b = 2
    t1()
    print(g_b)
    

    这个时候你会发现全局变量g_b也重新指向了,这是因为global gb表示指定了函数中的g_b就是外面的那个。

     

     

    展开全文
  • Python 中,根据变量的定义位置划分,在所有函数的外部定义的变量,称为全局变量,英文叫做 Global ...在 Python 中,根据变量的定义位置划分,在函数内部定义的变量,称为局部变量,英文叫做 Local Variable。

    您的“关注”和“点赞”,是信任,是认可,是支持,是动力…

    如意见相佐,可留言。
    本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新。

    1 Python 全局变量

    1.1 Python 全局变量概述

    在 Python 中,根据变量的定义位置划分,在所有函数的外部定义的变量,称为全局变量,英文叫做 Global Variable。

    1.2 定义全局变量的方式

    1.2.1 在函数外定义全局变量

    在所有函数外定义的变量,铁定是全局变量。

    举例如下所示:

    name = '码农阿杰'  # 函数外定义全局变量
    
    
    def info():  # 定义 info() 函数
        print('在函数内访问全局变量 name =', name)
    
    
    info()  # 调用 info() 函数
    print('在函数外访问全局变量 name =', name)
    
    

    运行结果:

    在函数内访问全局变量 name = 码农阿杰
    在函数外访问全局变量 name = 码农阿杰
    

    1.2.2 在函数内定义全局变量

    在函数内定义的变量,如果使用 global 关键字对其修饰,那么该变量就是全局变量。

    举例如下所示:

    def info():  # 定义 info() 函数
        global name  # 注意:先使用 global 关键字对函数内的变量进行修饰,此时不能给变量赋值,否则语法会不通过的哦。
        name = '阿杰老师'  # 注意:再对变量进行赋值。那么 name 变量就变成了全局变量。
        print('在函数内访问全局变量 name =', name)
    
    
    info()  # 调用 info() 函数
    print('在函数外访问全局变量 name =', name)
    
    

    运行结果:

    在函数内访问全局变量 name = 阿杰老师
    在函数外访问全局变量 name = 阿杰老师
    

    1.3 Python 全局变量作用域概述

    Python 全局变量的默认作用域是整个程序。

    具体指的是全局变量可以在各个函数的外部使用,也可以在各个函数的内部使用。从上面的例子中可以看出,全局变量 name ,既可以在函数内被访问,也可以在函数外被访问。

    2 Python 局部变量

    2.1 Python 局部变量概述

    在 Python 中,根据变量的定义位置划分,在函数内部定义的变量,称为局部变量,英文叫做 Local Variable。

    举例如下所示:

    例一,

    def info():  # 定义 info() 函数
        name = '阿杰老师'  # 在函数内定义的局部变量 name
        print('在函数内访问全局变量 name =', name)
    
    
    info()  # 调用 info() 函数
    print('在函数外访问全局变量 name =', name)  # 在函数外访问局部变量,会报错
    
    

    运行结果:

    在函数内访问全局变量 name = 阿杰老师
        print('在函数外访问全局变量 name =', name)
    NameError: name 'name' is not defined
    

    例二,

    def info(age):  # 定义 info(age) 函数
        name = '阿杰老师'  # 在函数内定义的局部变量 name
        print('在函数内访问全局变量 name =', name)
        print('在函数内访问形参 age =', age)
    
    
    info(18)  # 调用 info() 函数
    print('在函数外访问全局变量 name =', name)  # 在函数外无法访问局部变量
    print('在函数外访问形参 name =', age)  # 形参也是局部变量,在函数外无法访问
    
    

    运行结果:

    在函数内访问全局变量 name = 阿杰老师
    在函数内访问形参 age = 18
    Traceback (most recent call last):
      File "D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py", line 11, in <module>
        print('在函数外访问全局变量 name =', name)  # 在函数外无法访问局部变量
    NameError: name 'name' is not defined
    

    2.2 Python 局部变量作用域概述

    Python 局部变量的作用域仅限于函数内部,出了函数就不能使用了,

    具体指的是局部变量在函数外部被访问,Python 解释器会报 NameError 错误,并提示我们没有定义要访问的变量。从上面的例子以及运行结果可以看出。

    3 获取指定作用域范围内的变量

    3.1 使用 globals() 函数获取全局作用域内的所有全局变量

    使用格式如下所示:

    globals()
    

    对以上格式说明,

    • globals():是 Python 的内置函数。
    • 返回值:globals() 函数返回一个包含全局作用域内的所有全局变量(包含 Python 内置的全局变量)的字典,键为变量名,值为变量值。

    举例如下所示:

    # 定义全局变量
    name = '码农阿杰'
    age = 18
    
    
    def info():
        # 定义局部变量
        gender = '男'
        num = 1012
    
    
    print(globals())
    globals()['name'] = '阿杰'  # 访问全局变量 name,并修改
    print('修改后的 name =', name)
    
    
    

    运行结果:

    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000017FE0CE0880>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py', '__cached__': None, 'name': '码农阿杰', 'age': 18, 'info': <function info at 0x0000017FE2935EE0>}
    修改后的 name = 阿杰
    
    

    3.2 使用 locals() 函数获取当前作用域内所有变量

    使用格式如下所示:

    locals()
    

    对以上格式说明,

    • locals():是 Python 的内置函数。
    • 返回值:返回包含当前作用域(在函数内用 locals() 函数,返回包含所有局部变量的字典;在函数外用 locals() 函数,与 globals() 函数作用相同)内所有变量(包含 Python 内置的全局变量)的字典。

    举例如下所示:

    # 定义全局变量
    name = '码农阿杰'
    age = 18
    
    
    def info():
        # 定义局部变量
        gender = '男'
        num = 1012
        print(locals())  # 在函数内使用 locals() 函数
        locals()[gender] = '女'  # 只能访问,不能修改
        print('修改后 gender =', gender)
    
    
    info()  # 调用 info() 函数
    print('------------------------------')
    print(locals())  # 在函数外使用 locals() 函数
    
    

    运行结果:

    {'gender': '男', 'num': 1012}
    修改后 gender =------------------------------
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000012533DF0880>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py', '__cached__': None, 'name': '码农阿杰', 'age': 18, 'info': <function info at 0x0000012535A35EE0>}
    
    

    3.3 使用 vars(object) 函数获取指定范围内所有的变量

    使用格式如下所示:

    vars([object])
    

    对以上格式说明,

    • vars():是 Python 的内置函数。
    • 返回值:返回一个指定 object 对象范围内所有变量(包含 Python 内置的全局变量)组成的字典。
    • [object]:可选参数。不写 object 参数,vars() 和 locals() 的作用完全相同。

    举例如下所示:

    # 定义一个 Person 类
    class Person:
        # 定义全局变量
        name = '码农阿杰'
        age = 18
    
    
    print(vars())  # 不写 object 参数,跟 locals() 函数用法一样。
    print('----------------------------')
    print(vars(Person))  # 写 object 参数
    
    

    运行结果:

    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001C00F7E0880>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py', '__cached__': None, 'Person': <class '__main__.Person'>}
    ----------------------------
    {'__module__': '__main__', 'name': '码农阿杰', 'age': 18, '__dict__': <attribute '__dict__' of 'Person' objects>, '__weakref__': <attribute '__weakref__' of 'Person' objects>, '__doc__': None}
    
    

    【友情链接】

    微信公众号:码农阿杰

    博客园

    【参考资料】

    Python 官网

    Python 3.8.2 documentation

    展开全文
  • 这篇文章主要为大家详细介绍了Python全局变量与局部...Python全局变量与局部变量详解# @param Python全局变量与局部变量详解# @author 512笔记|www.512Pic.com#Python中的变量:全局变量和局部变量#在很多语言中,在...

    这篇文章主要为大家详细介绍了Python全局变量与局部变量的简单示例,具有一定的参考价值,可以用来参考一下。

    对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧!

    Python全局变量与局部变量详解

    # @param Python全局变量与局部变量详解

    # @author 512笔记|www.512Pic.com

    #Python中的变量:全局变量和局部变量

    #在很多语言中,在声明全局变量的时候,都喜欢把全局变量的名称定义为大写

    #定义学生人数为100

    STUDENT_NUMBER = 100

    #学校名称

    SCHOOL_NAME = 'Guangzhou University'

    """\

    获取全局变量:学生人数STUDENT_NUMBER的值

    """

    def getStudentNumber():

    return STUDENT_NUMBER

    """\

    重置全局变量:学生人数STUDENT_NUMBER值

    """

    def setStudentNumber(num):

    global STUDENT_NUMBER

    STUDENT_NUMBER = num

    """\

    获取全局变量:学校名称SCHOOL_NAME的值

    """

    def getSchoolName():

    return SCHOOL_NAME

    """\

    重置全局变量:学校名称SCHOOL_NAME值

    """

    def setSchoolName(name):

    global SCHOOL_NAME

    SCHOOL_NAME = name

    def changeValue():

    name = '北京大学'

    number = 90

    print('全局变量STUDENT_NUMBER = ' , getStudentNumber())

    print('全局变量SCHOOL_NAME = ' , getSchoolName())

    print('#######################################')

    print('局部变量namber = ' , number)

    print('局部变量name = ' , name)

    print('#######################################')

    print('改变全局变量值...')

    print('#######################################')

    setStudentNumber(number)

    setSchoolName(name)

    print('全局变量STUDENT_NUMBER = ' , getStudentNumber())

    print('全局变量SCHOOL_NAME = ' , getSchoolName())

    if __name__ == '__main__':

    changeValue()

    # End www_512pic_com

    注:关于Python全局变量与局部变量的简单示例的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。

    关键词:全局变量,局部变量

    展开全文
  • python全局变量和局部变量 全局变量 num = 45 def class1(): print(num) #全局变量 def class2(): print(num) #全局变量 class1() #45全局变量 class2() #45全局变量 print(num) #45全局变量 局部变量 num =...

    python全局变量和局部变量

    全局变量
    num = 45
    
    def class1():
    	print(num) #全局变量
    
    def class2():
        print(num) #全局变量
    
    class1() #45全局变量
    class2() #45全局变量
    
    print(num) #45全局变量
    
    
    局部变量
    num = 45
    
    def class1():
        num2 = 20  
    	print(num2) # 20 局部变量
    
    def class2():
        num2 = 25 
        print(num2) # 25 局部变量
    
    class1() # 20 局部变量
    class2() # 25 局部变量
    
    print(num) #45 全局变量
    
    
    修改全局变量
    num = 45
    def class1():
        global num #修改全局变量的关键字global
        num -= 1
        num2 = 20
        print(num)
        print(num2)
    
    def class2():
        num2 = 25
        print(num)
        print(num2)
    
    class1()  # 20 44
    class2()  # 25 44
    
    print(num)  # 44
    配op'le
    
    列表、字典、集合在函数中不用加global,也可以用作全局变量
    basket = [1,2,3,24]
    
    def class1():
        basket.pop()
        print(basket)
    
    def class2():
        print(basket)
    
    class1()  
    class2()  
    
    print(basket)  
    
    
    展开全文
  • 局部变量全局变量的概念 以下摘自百度百科: 变量分为局部与全局局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。 全局变量既可以...
  • Python全局变量和局部变量 1.局部变量 定义在函数体内部的变量,作用区域仅限于函数体内 如图所示 这里定义了一个函数体A,在函数体A里面定义了一个局部变量name,当我们调用函数体A时,发现可以把name的赋值打印...
  • '''全局变量和局部变量 定义在函数内部的变量是局部变量 定义在函数外部的变量是全局变量 函数内部先根据变量名找局部变量,如果没有,再找全局变量 函数内部实现修改全局变量,可以用global来对一个全局变量进行...
  • python全局变量和局部变量是我们在调用函数时,会很容易混淆的点。首先讲一下局部变量,通常,我们在函数内定义的变量即为局部变量(不加global 参数)。函数中的局部变量无法影响函数外的命名空间中的变量,即使...
  • 在本文中,你将了解Python全局变量、局部变量、非局部变量以及在何处使用它们。全局变量在Python中,在函数外部或全局范围内声明的变量称为全局变量,这意味着,可以在函数内部或外部访问全局变量。让我们看一个关于...
  • 主要介绍了Python全局变量与局部变量区别及用法,结合实例形式分析了Python全局变量与局部变量的定义、常见用法、区别及相关操作注意事项,需要的朋友可以参考下
  • python全局变量与局部变量

    万次阅读 多人点赞 2019-03-01 15:27:17
    python全局变量与局部变量 标签: python 局部变量就是定义在一个函数体内部的变量 全局变量是定义在外面的变量 比如: a = 1 def f(): b = 2 其中a就是全局变量,而b是局部变量局部变量只在函数体内部...
  • python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 。 nonlocal关键字是python3新增的,python2没有 4个例子说明globalnonlocal的作用 global...
  • python全局变量和局部变量详解

    万次阅读 多人点赞 2018-11-13 12:18:46
    python全局变量和局部变量的最大区别在于局部变量只能通过函数去访问,而全局变量可以直接访问。 !!! 我们先来看一个最简单的例子,事实上这并不是一个真正的全局变量,只是在类中的一个变量。 !!! 我们...
  • python基础:局部变量和全局变量.pdf
  • python全局变量和局部变量的区别 全局变量和局部变量的区别在于作用域,全局变量在整个py文件中声明,全局范围内可以使用;局部变量是在某个函数内部声明的,只能在函数内部使用,如果超出使用范围(函数外部),则...
  • 主要介绍了图解python全局变量与局部变量相关知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,767
精华内容 22,706
关键字:

python全局和局部变量

python 订阅