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

本文介绍了Python中全局变量和局部变量的概念,并通过实例解析了它们的区别。在函数外部定义的变量是全局变量,而在函数内部声明的`global`变量表示全局作用域,但若在函数内部直接使用未声明的变量,则会被视为局部变量。错误地将全局变量作为函数参数会导致冲突和错误。
摘要由CSDN通过智能技术生成

最近开始学习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 作为全局变量相矛盾了。

简而言之就是:当变量是全局变量的时候,就不要将其作为函数的实参,否则就会出错。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值