Python中局部变量与全局变量的解释

num = 5

def  func():

num += 1

print(num)

print(num)

输出:UnboundLocalError: local variable ‘num‘ referenced before assignment

翻译:局部变量错误:变量 “num” 未被定义就被应用了。由此再次证明了这里定义了一个局部变量,而不是使用的全局的 “num”

总结:当已经在函数体外的变量已经被定义为全局变量后,在函数体内又被重新赋值一遍,这时的变量在函数体内又被定义为局部变量,只在函数体内才会有效。在函数体外的时候恢复之前未在函数体内定义的状态。

def func():

num = 10

print(num)

func()

print(num)

输出:NameError: name ‘num‘ is not defined

名称错误:变量num没有被定义

说明这里num被定义成了一个局部变量,只能在函数体内有效。

num = 100

def func()

x = num +100

print(x)

输出:200

说明这里的num是作全局变量使用的

总结:自己看程序

如果想在函数体内定义一个全局变量,可以用globa来定义,如下:

num = 100

def func():

  global num

  num = 200

  print(num)

func()

print(num)

输出:200

输出:200

说明这里的num是作全局变量使用的。

时间: 2024-10-14 00:52:20

Python中局部变量与全局变量的解释的相关文章

Python的局部变量和全局变量

在python中,引用全局变量有些特殊的地方.我们来看代码例子. >>> num=1 >>> def test(): ... print num ... value = num+1 ... print value ... >>> test() 1 2 上面代码先定义了一个全局变量num,这时我们就可以在函数内部随便使用这个全局变量. 但是如果我们要在函数内部修改全局变量,写法就有些特殊了,如: >>> num=1 >>&g

JavaScript中局部变量与全局变量的不同

JavaScript中局部变量与全局变量 我们知道,JavaScript的变量是松散型的变量,也就是说,其变量只需用var声明,其赋值的类型是不限定的.比如: var person=18; person="zhuzhenwei";  即先给person保存了一个number类型的值,之后还可以保存一个string类型的值,但是,这种做法是不推荐的. 甚至我们都可以直接给一个变量赋值,而不需要声明.比如: person=18; person="zhuzhenwei";

python中if __name__ == "__main__":的解释

当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个模块的 __name__ 的值取决于您如何应用模块.如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名.但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__". //////

python中self与__init__怎么解释能让小白弄懂?

python中self与__init__怎么解释能让小白弄懂? 这个问题其实没那么简单. 只说一下自己的理解. python 里所有的 object 都有三个属性, 标识(identity), 类型(type) 和值(value). 其中 identity 可以用 id 函数获得, CPython 里的实现是 object 的内存地址. 值就是 object 具体存放的数据, 而 type, object 的类型, 决定了可以对数据所进行的操作. 这里举个例子, tuple (1, 2, 3)和

PYTHON 函数局部变量和全局变量

有这样一段PYTHON代码,从事C语言开发的人都知道,如果定义了全局变量,而函数内没有定义同名的函数变量的话,那么在函数内对该变量的赋值就是对全局变量空间数值的修改, 然后在PYTHON中却不尽相同,在python中的函数中,如果没有明确声明是全局变量,那么python就会为函数创建局部变量,所以函数中操作的变量也是局部变量 count = 5 def myfun(): count = 10 print(count) myfun() print(count) 打印的结果如下 那么如何在函数中修改

python(10)——局部变量、全局变量

局部变量:在局部生效的,出了这个变量的作用域,这个变量就失效了.函数内部定义的变量就是局部变量,函数运行完就释放该变量内存 全局变量:在整个程序里面都生效的,在程序最前面定义的都是全局变量,全局变量如果要在函数中修改的话,需要加global关键字声明,如果是list.字典和集合的话,则不需要加global关键字,直接就可以修改 . 尽量少用全局变量,原因:1.若全局变量被修改,影响较大:2.全局变量在python文件运行完才会释放,占内存 name ='wangchan' #全局变量 每个函数里

javascript中局部变量和全局变量的区别详解

javascript有两种变量:局部变量和全局变量.当然,我们这篇文章是帮助大家真正的区别这两种变量. 首先,局部变量是指只能在本变量声明的函数内部调用.全局变量时整个代码中都可以调用的变量.当然,单单从字面上理解肯定是不清楚的,下面我详细的介绍下: 大家都知道,变量是需要用var关键字声明的.但是javascript中也可以隐式的使用变量,就是不用声明,直接使用.而且,千万注意,javascript把隐式声明的变量总是当成全局变量来使用的. 例如: 代码如下: function myName(

python入门基础教程07 python的局部变量和全局变量

局部变量 要谈局部变量和全局变量的技术前提是对函数有一定的理解,我们先在这里简单说明一下Python的函数,Python有自带的函数也可以使用第三方工具包了外部引用函数,有的时候用户自己可以自主开发一些特定功能的函数我们称之为自定义函数.用户怎么才能自己定义函数呢?Python 规定的自定义函数语法结构如下: def function_name(parameters): (TAB)statement1 (TAB)statement2 (TAB)statement3 (TAB)etc. 第1行是定

Labview中局部变量和全局变量

局部变量的作用域是整个VI,它用于在单个VI中传输数据: 全局变量的作用域是整台计算机,它主要用于多个VI之间共享数据