Python全局变量关键字global的简单使用

目录
  • 简介:
  • 案例1:全局无法使用局部变量。
  • 案例2:全局变量,任意范围均可使用。
  • 案例3:函数内定义的局部变量
  • 案例4:函数间global关键字的作用
  • 案例5:不同文件模块中的global,注意test6, test7为不同文件。
  • 案例6:不同文件模块中的global,注意test6, test7为不同文件。
  • 附:用global声明多个变量需要用逗号分
  • 结论:

简介:

1、global是Python中的全局变量关键字。

2、全局变量是编程术语中的一种,源自于变量之分。

3、变量分为局部与全局,局部变量又可称之为内部变量。

4、由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。

5、全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。

6、global关键字的作用是可以使得一个局部变量为全局变量。

案例1:全局无法使用局部变量。

# -*- coding: utf-8 -*-
def test1():
    # 局部变量 local
    local_var = "a"
    print(local_var)

# 全局无法使用局部变量,只有对应的局部作用域可用
# print(local_var)  # NameError: name 'local_var' is not defined

案例2:全局变量,任意范围均可使用。

global_var = 1

def test2():
    # 函数内使用全局变量
    print(global_var + 1)

    def inner():
        # 嵌套函数内使用全局变量
        print(global_var + 2)

    return global_var + 3  # 返回值内使用全局变量

# 函数外使用全局变量。
print(global_var)

案例3:函数内定义的局部变量

def test3():
    # 函数内变量,但对于下级函数就是全局变量,对于外部来说就是局部变量
    func_var = 1
    def inner():
        print(func_var)
        return func_var
    return inner()

test3()

案例4:函数间global关键字的作用

def test4():
    # global关键字作用
    global func_var
    func_var = 2

    # 调用test5可以打印 func_var,去掉global会报错。
    test5()
    print(test5.__globals__)

def test5():
    print(func_var)

test4()

案例5:不同文件模块中的global,注意test6, test7为不同文件。

# a.py
def test6():
    # global关键字作用
    global func_var
    func_var = 3

# b.py
from a import test6

def test7():
    print(test6.__globals__["func_var"])

# 不先执行test6的情况下会抛出异常。KeyError: 'func_var'
test7()  # KeyError: 'func_var'

案例6:不同文件模块中的global,注意test6, test7为不同文件。

# a.py
def test6():
    # global关键字作用
    global func_var
    func_var = 4

# b.py
from a import test6

def test7():
    print(test6.__globals__["func_var"])

# 先执行test6的情况下,test可以使用 func_var
test6()
test7()  # 4

附:用global声明多个变量需要用逗号分

num = 0
def cc():
 global count,num
 count = count+1
 num = num+2
 print(count,num)
cc()
3 2
# 可以函数中的global声明能够修改全局变量
num
Out[24]: 2
#
count
Out[25]: 3
在使用全局变量的场合,也可用类变量代替
class C:
 count = 3
def cc():
 count = C.count+1
 print(count)
cc()
4

结论:

1、只导入包,global定义的全局变量没有被加到globals里面。

2、执行global所在的对应函数,global定义的函数内会存入对应变量,其他函数内则不会存入。

到此这篇关于Python全局变量关键字global的简单使用的文章就介绍到这了,更多相关Python全局变量关键字global内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2022-06-21

python中的global关键字的使用方法

摘要 global 标志实际上是为了提示 python 解释器,表明被其修饰的变量是全局变量.这样解释器就可以从当前空间 (current scope) 中读写相应变量了. Python 的全局变量是模块 (module) 级别的 每个 python 函数拥有对应的 __globals__ 字典,该字典与函数所属模块的 __dict__ 字典完全相同.函数的全局变量也会从这个字典中获取 注:上面三句话的意思就是,python 解释器发现函数中的某个变量被 global 关键字修饰,就去函数的 _

对python多线程与global变量详解

今天早上起来写爬虫,基本框架已经搭好,添加多线程爬取功能时,发现出错: 比如在下载文件的url列表中加入200个url,开启50个线程.我的爬虫-竟然将50个url爬取并全部命名为0.html,也就是说,最后的下载结果,是有1个0.html(重复的覆盖了),还有1-150.下面是我的代码: x = str(theguardian_globle.g) #x为给下载的文件命的名 filePath = "E://wgetWeiBao//"+x+".html" try: w

python中global用法实例分析

本文实例讲述了python中global用法.分享给大家供大家参考.具体分析如下: 1.global---将变量定义为全局变量.可以通过定义为全局变量,实现在函数内部改变变量值. 2.一个global语句可以同时定义多个变量,如 global x, y, z 示例程序: >>> def func(): ... global x ... print 'x is ', x ... x = 2 ... print 'Change local x to ', x ... >>>

python global关键字的用法详解

最近刚好有朋友遇到个global相关的问题,这里简单学习一下global关键字的用法. 想要更好的了解global关键字,首先要熟悉python的全局变量与局部变量的概念.global关键字的作用是可以申明一个局部变量为全局变量,下面看一下实例 一.变量作用域的说明 这里简单提一下变量作用域的概念,有兴趣的小伙伴,可以查一下相关的博客 1.局部变量 def a(): ## 菊部变量 - ,- local = 1 print(local) ## 全局无法使用,只有自己可用 print(lobal)

Python 内置函数globals()和locals()对比详解

这篇文章主要介绍了Python globals()和locals()对比详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python的两个内置函数,globals()和locals() ,它们提供了基于字典的访问局部和全局变量的方式. globals()是可写的,即,可修改该字典中的键值,可新增和删除键值对. 而locals()是不可修改字典中已存在的键值的,也不能pop移除键值对,但是可以新增键值对. Demo: a = 1 # 定义一个

python中global与nonlocal比较

python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 一.global global关键字用来在函数或其他局部作用域中使用全局变量.但是如果不修改全局变量也可以不使用global关键字. 复制代码 代码如下: gcount = 0 def global_test():     print (gcount)     def global_counter():     global gcount     gcount +=1   

Python global全局变量函数详解

global语句的作用 在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是全局变量.此时用global语句就可以变成这个任务,也就是说没有用global语句的情况下,是不能修改全局变量的. 在python的函数使用时,经常会碰到参数定义的问题.如果不声明全局变量,会报错 count = 1 def cc(): count = count+1 cc() Traceback (most recent call last):

Python中 Global和Nonlocal的用法详解

nonlocal 和 global 也很容易混淆.简单记录下自己的理解. 解释 global 总之一句话,作用域是全局的,就是会修改这个变量对应地址的值. global 语句是一个声明,它适用于整个当前代码块. 这意味着列出的标识符将被解释为全局变量. 尽管自由变量可能指的是全局变量而不被声明为全局变量. global 语句中列出的名称不得用于该全局语句之前的文本代码块中. global 语句中列出的名称不能定义为形式参数,也不能在 for 循环控制目标. class 定义.函数定义. impo

Python中关键字global和nonlocal的区别详解

前言 终于下定决心学习Python了.既然从头开始,就需要认认真真. 首先需要说的是,我是初学Python,这篇文章只是用于展示global和nonlocal关键字的区别,是很简单的知识点,如果你已经学过,可以绕道.因为不经常写博客,而且是个Python小白,所以内容有些啰嗦... 两个关键词都用于允许在一个局部作用域中使用外层的变量. global 表示将变量声明为全局变量 nonlocal 表示将变量声明为外层变量(外层函数的局部变量,而且不能是全局变量) 注意:我使用的是Python3.6

Python全局变量与global关键字常见错误解决方案

在Python的变量使用中,经常会遇到这样的错误: local variable 'a' referenced before assignment 它的意思是:局部变量"a"在赋值前就被引用了. 比如运行下面的代码就会出现这样的问题: a = 3 def Fuc(): print (a) a = a + 1 Fuc() ​ 但是如果把 a = a + 1 这一句删除又不会出现上述问题了 a = 3 def Fuc(): print (a) Fuc() ​ 原来,在Python中,a=3

python中常见错误及解决方法

python常见的错误有 1.NameError变量名错误 2.IndentationError代码缩进错误 3.AttributeError对象属性错误 详细讲解 1.NameError变量名错误 报错: >>> print a<br>Traceback (most recent call last):<br>File "<stdin>", line 1, in <module><br>NameError:

Android笔记整理之常见错误及解决方案汇总

一.No active compatible AVD's or devices found. Relaunch this configuration after connecting a device or starting an AVD. 修改adb server的端口,设置一个系统环境变量ANDROID_ADB_SERVER_PORT,值7913(随意一个数字),再启动adb server 步骤: a)进入cmd命令模式 b)cd XXX\platform-tools c)adb start

ASP常见错误详解及解决方案小结 推荐第1/2页

有三种主要的错误类型: 1.编译错误: 这种错误出现一般都是代码的语法问题.因为编译错误而导致辞ASP停止运行. 2.运行错误: 这个错误是发生在你准备运行ASP时的.例如:如果你试图给一个变量赋值,但是却超出了该变量允许的范围. 3.逻辑错误: 逻辑错误是最难被发现的,这种错误经常是一种结构错误,电脑是发现不了的.这就需要我们彻头彻尾地检查我们的代码. 因为编译错误一般是和逻辑错误一起发生的,一般都能显示出来,所以我们担心的就只是运行错误.它都终止ASP的运行,而且给用户丢下一堆很不友好的文字

十个Python程序员易犯的错误

常见错误1:错误地将表达式作为函数的默认参数 在Python中,我们可以为函数的某个参数设置默认值,使该参数成为可选参数.虽然这是一个很好的语言特性,但是当默认值是可变类型时,也会导致一些令人困惑的情况.我们来看看下面这个Python函数定义: >>> def foo(bar=[]): # bar是可选参数,如果没有提供bar的值,则默认为[], ... bar.append("baz") # 但是稍后我们会看到这行代码会出现问题. ... return bar Py

Python全局变量用法实例分析

本文实例讲述了Python全局变量用法.分享给大家供大家参考,具体如下: 全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量.今天有同事问一个关于全局变量的问题,才发现其中原来还有门道. 程序大致是这样的: CONSTANT = 0 def modifyConstant() : print CONSTANT CONSTANT += 1 return if __name__ == '__main__' : modifyConstant() print CONSTANT 运行结果如下:

Python全局变量操作详解

接触Python时间不长,对有些知识点,掌握的不是很扎实,我个人比较崇尚不管学习什么东西,首先一定回去把基础打的非常扎实了,再往高处走.今天遇到了Python中的全局变量的相关操作,遇到了问题,所以,在这里将自己遇到的问题,做个记录,以长记心!!! 在Python中使用全局变量,其实,个人认为并不是很明智的选择:但是自己还是坚信,存在便合理,在于你怎么使用:全局变量降低了模块和函数之间的通用性:所以,在以后的编程过程中,应尽量避免使用全局变量. 全局变量的使用: 方法一: 为了便于代码管理,将全

php安全配置记录和常见错误梳理(总结)

通常部署完php环境后会进行一些安全设置,除了熟悉各种php漏洞外,还可以通过配置php.ini来加固PHP的运行环境,PHP官方也曾经多次修改php.ini的默认设置. 下面对php.ini中一些安全相关参数的配置进行说明 register_globals 当register_globals = ON时,PHP不知道变量从何而来,也容易出现一些变量覆盖的问题.因此从最佳实践的角度,强烈建议设置 register_globals = OFF,这也是PHP新版本中的默认设置. open_based