您的位置:首页 > 编程语言 > Python开发

python 学习笔记之 全局变量和局部变量

2015-01-07 13:43 525 查看
最近开始学习python 了!

1 python 中使用在函数之外的变量均为全局变量

2 在函数内部使用的变量为局部变量。

之所以今天写关于变量的作用域的笔记,是因为本人在一个小程序中出了错,再次做些总结。

先看下面的程序:

#!/usr/bin

# Filename: func_global.py

def func():

global x

print 'x is', x

x = 5

print 'change x to', x

x = 100

func()

print 'the value of x is', x

该程序的运行结果是:

x is 100

changed x to 5

the value of x is 5

这个程序的理解是没有问题的,问题的关键在于当我把程序做稍许的改动就报错了。我是这样改的将定义函数def func() 改为def func(x)。将调用函数func()改为func(x)。报错的信息是:

name "x" is local and global

这句报错信息究竟是什么意思呢,很明显系统在告诉我们x 既是局部变量又是全局变量,这是矛盾的,所以就报错了。

仔细分析一下便可得知:

首先,在函数外部的变量为全局变量。

程序首先执行的是语句 x = 100(x 是全局变量)

当执行到调用函数func(x)这个语句时,此时,变量x 被传递到func()内部。此时函数内部global x 语句之外的 x 是作为局部变量的,与x 作为全局变量相矛盾了。

简而言之就是:当变量是全局变量的时候,就不要将其作为函数的实参,否则就会出错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: