博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 局部变量和全局变量 global
阅读量:6186 次
发布时间:2019-06-21

本文共 1066 字,大约阅读时间需要 3 分钟。

 

当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。

使用局部变量

例7.3 使用局部变量

#!/usr/bin/

# Filename: func_local.py
def func(x):
    print 'x is', x
    x = 2
    print 'Changed local x to', x
x = 50
func(x)
print 'x is still', x

(源文件:)

输出

$ python func_local.py

x is 50
Changed local x to 2
x is still 50

它如何工作

在函数中,我们第一次使用x的  的时候,Python使用函数声明的形参的值。

接下来,我们把值2赋给xx是函数的局部变量。所以,当我们在函数内改变x的值的时候,在主块中定义的x不受影响。

在最后一个print语句中,我们证明了主块中的x的值确实没有受到影响。

使用global语句

如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 全局 的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。

你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。使用global语句可以清楚地表明变量是在外面的块定义的。

例7.4 使用global语句

#!/usr/bin/python

# Filename: func_global.py
def func():
    global x
    print 'x is', x
    x = 2
    print 'Changed local x to', x
x = 50
func()
print 'Value of x is', x

(源文件:)

输出

$ python func_global.py

x is 50
Changed global x to 2
Value of x is 2

它如何工作

global语句被用来声明x是全局的——因此,当我们在函数内把值赋给x的时候,这个变化也反映在我们在主块中使用x的值的时候。

你可以使用同一个global语句指定多个全局变量。例如global x, y, z

转载地址:http://idsda.baihongyu.com/

你可能感兴趣的文章
Mahout推荐算法之SlopOne
查看>>
接口偶尔出现卡顿排查解决
查看>>
通过配置透明大页,提高kvm的性能
查看>>
Python学习-数据运算
查看>>
001-Liftweb简介
查看>>
java设计模式-饿汉设计模式
查看>>
四、运维自动化发展—Web化
查看>>
VC中MessageBox的常见用法
查看>>
React 设计思想(转)
查看>>
杂乱无章
查看>>
Node.js模块全局安装路径配置
查看>>
ubuntu14.04英文环境下安装中文输入法
查看>>
单元测试实施解惑(二)— 别“桩”了!
查看>>
LaTeX | 为学术论文排版而生【公式篇】
查看>>
用Android的drawPath模仿易网滑动标题的源码
查看>>
Makefile内置变量,递归式变量,直接展开式变量,条件赋值,追加赋值,Makefile中s......
查看>>
springboot学习(二)——springmvc配置使用
查看>>
去掉系统的安全标示ssid
查看>>
springMVC fastjson 控制Bigdecimal 精度
查看>>
java的NIO概述
查看>>