`
saber7
  • 浏览: 10211 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

global语句局部与全局变量

阅读更多

很好理解,global语句是为了声明在函数内定义的一个变量不是局部的而是全局的。

 

#-*-coding=gbk
def gl(x):
    print x# 第一次输出时使用形参变量x = 1
    x = 0# 为x赋值 x = 0(局部)
    print x# 此时输出局部变量

x = 1
gl(x)
print x# 验证函数外主块中x没受影响

 输出:

>>>
1
0
1

 

#-*-coding=gbk
def gl():
    global x# 声明x变量不是局部的,而是全局的

    print x
    x = 0
    print x

x = 1
gl()
print x

 输出:

1
0
0

 

下面是《python核心编程》里的例子:

#-*-coding=gbk
is_this_global = 'xyz'
def foo():
    global is_this_global
    this_is_local = 'abc'
    is_this_global = 'def'
    print this_is_local + is_this_global
foo()
print is_this_global# 这里验证is_this_global得到的是函数内赋值的def

输出:

>>>
abcdef
def

分享到:
评论

相关推荐

    实例讲解Python中global语句下全局变量的值的修改

    global是Python中的一个关键字用来,声明一个局部变量为全局变量,这里我们来以实例讲解Python中global语句下全局变量的值的修改,需要的朋友可以参考下.

    php 全局变量范围分析

    复制代码 代码如下: <?... include ‘b.inc’ ; ?> 这里变量 $a 将会在包含文件 b.inc 中生效。但是,在用户自定义函数中,一个局部... 这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量 $a ,而且

    python基础2day05.txt

    全局变量 和 局部变量 globals() / locals() 函数变量 def 函数名(...): pass 函数可以作为参数传递 函数可以作为返回值返回 函数的嵌套定义 python 作用域 局部作用域 外部嵌套函数作用域 模块级的...

    解读Python编程中的命名空间与作用域

    变量是拥有匹配对象的名字(标识符)。...因此,如果要给全局变量在一个函数里赋值,必须使用global语句。 global VarName的表达式会告诉Python, VarName是一个全局变量,这样Python就不会在局部命名空间里寻找

    Python中关键字nonlocal和global的声明与解析

    函数中对变量的赋值,变量始终绑定到该函数的局部命名空间,使用global 语句可以改变这种行为。 >>> a 10 >>> def foo(): ... global a ... a = 100 ... >>> a 10 >>> foo() >>> a 100 解析名称时首先检查局部...

    PHP 学习笔记 – 有其他语言基础

    lobal 在函数内访问全局变量 static 函数完成/执行后,不删除某个局部变量 echo 和 print 语句 echo – 能够输出一个以上的字符串 print – 只输出一个字符串,并且始终返回1 echo 是一个语言结构,有无括号均可使用...

    Python第一阶段笔记汇总.docx

    (三)全局变量 66 (四)global 语句 67 (五)nonlocal 语句(外部嵌套) 67 第二章 面向对象 Object Oriented 68 一 概述 68 (一)面向过程 68 (二)面向对象 68 二 类和对象 69 (一)语法 70 (二)实例成员 72 (三...

    Python之函数三千问(基础篇)

    全局变量和局部变量: 栈帧(stack frame): 函数出口:return语句 lambda表达式: 递归函数:  嵌套函数: nonlocal和global: LEGB规则: 函数其它小用法: 函数是Python中重要的组成部分,它可以将代码封装...

    深入理解javascript变量声明

    相对于C/C++来说,ECMAScript里的for...“不是变量”并不是说它不能被改变,而是指它不符合ECMAScript规范中的变量概念,所以它“不是变量”(它之所以能成为全局对象的属性,完全是因为javascript中存在一个global对象

    JavaScript作用域、闭包、对象与原型链概念及用法实例总结

    嵌套作用域变量搜索规则:当在函数中引用一个变量时,JS会搜索当前函数作用域,如果没有找到则搜索其上层作用域,一直到全局作用域。 var value = 'global'; var f1 = function(){ console.log

    delphi编译错误.txt

    For loop control variable must be simple local variable FOR循环控制变量必须为简单局部变量 For loop control variable must have ordinal type FOR循环控制变量必须为序数类型 FOR or WHILE loop executes zero...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用global语句。而你要将该变量的作用范围限制在该函数之内,使用static语句。 $g_var = 1 ; // 全局范围 function test() { global $g_var; // 这样...

    C#微软培训资料

    第五章 变量和常量 .44 5.1 变 量 .44 5.2 常 量 .46 5.3 小 结 .47 第六章 类 型 转 换 .48 6.1 隐式类型转换 .48 6.2 显式类型转换 .53 6.3 小 结 .56 第七章 表 达 式 .58 7.1 操 作 符 .58 ...

    freemarker总结

    这些指令显然是分支指令,作用类似于Java的switch语句,switch指令的语法结构如下: <#case refValue>... <#case refValue>... <#default>... 3、 list, break指令 list指令是一个迭代输出指令,用于迭代输出...

    LINGO软件的学习

    为此,LINGO为用户提供了两个可选部分:输入集成员和数据的数据部分(Data Section)和为决策变量设置初始值的初始部分(Init Section)。 3.1 模型的数据部分 3.1.1 数据部分入门 数据部分提供了模型相对静止部分...

    arm指令集-中文 (ARM微控制器基础)

    前言...............................................................................................................................................................i 目录..................................

    ARM指令集 肯定可以下载

    前言...............................................................................................................................................................i 目录..................................

    学习ARM汇编的经典参考资料

    学习ARM汇编指令的经典资料。 对ARM的各种汇编指令进行了深入全面的讲解,并给出了各种示例和详细注解,并且还对一些值得注意的点或是容易犯错误的地方进行了总结。 目录 前言......................................

Global site tag (gtag.js) - Google Analytics