位置: 编程技术 - 正文
推荐整理分享实例讲解Python中global语句下全局变量的值的修改(python的例子),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:python的例子,python语言例子,python 例子,python 举例,python的例子,python 例子,python100例详解,python100例详解,内容如对您有帮助,希望把文章链接给更多的朋友!
Python的全局变量:int string, list, dic(map) 如果存在global就能够修改它的值。而不管这个global是否是存在于if中,也不管这个if是否能够执行到。但是,如果没有
int string 将会报错。而list dic(map)是ok的。
结果:
为什么修改全局的dict变量不用global关键字比如下面这段代码
为什么修改字典d的值不用global关键字先声明呢?这是因为,在s = 'bar'这句中,它是“有歧义的“,因为它既可以是表示引用全局变量s,也可以是创建一个新的局部变量,所以在python中,默认它的行为是创建局部变量,除非显式声明global.在d['b']=2这句中,它是“明确的”,因为如果把d当作是局部变量的话,它会报KeyError,所以它只能是引用全局的d,故不需要多此一举显式声明global。上面这两句赋值语句其实是不同的行为,一个是rebinding, 一个是mutation.
但是如果是下面这样
在d = {}这句,它是”有歧义的“了,所以它是创建了局部变量d,而不是引用全局变量d,所以d['b']=2也是操作的局部变量。
推而远之,这一切现象的本质就是”它是否是明确的“。仔细想想,就会发现不止dict不需要global,所有”明确的“东西都不需要global。因为int类型str类型之类的,只有一种修改方法,即x = y, 恰好这种修改方法同时也是创建变量的方法,所以产生了歧义,不知道是要修改还是创建。而dict/list/对象等,可以通过dict['x']=y或list.append()之类的来修改,跟创建变量不冲突,不产生歧义,所以都不用显式global。
从局部变量和全局变量开始全面解析Python中变量的作用域 理解全局变量和局部变量1.定义的函数内部的变量名如果是第一次出现,且在=符号前,那么就可以认为是被定义为局部变量。在这种情况下,不论全局
python运行时间的几种方法 最早见过手写的,类似于下面这种:importdatetimedeftime_1():begin=datetime.datetime.now()sum=0foriinxrange():sum=sum+iend=datetime.datetime.now()returnend-beginprinttime_1()输
浅谈python为什么不需要三目运算符和switch 对于三目运算符(ternaryoperator),python可以用conditionalexpressions来替代如对于x:0可以用下面的方式来实现1ifx5else0注:conditionalexpressions是在python2.5之前引入的,
标签: python的例子
本文链接地址:https://www.jiuchutong.com/biancheng/387678.html 转载请保留说明!上一篇:最大K个数问题的Python版解法总结(最大的k个数python)
下一篇:从局部变量和全局变量开始全面解析Python中变量的作用域(从局部变量和全变量区分)
友情链接: 武汉网站建设