问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python全局变量的问题?

发布网友 发布时间:2022-05-07 03:28

我来回答

5个回答

热心网友 时间:2022-04-18 16:56

在 自定义函数 内定义的变量 默认就是局部变量,在没有额外声明的情况下,你要用这个函数用的就是这个局部变量

结果就是局部变量为num=num-1,因为有局部变量了,所以同名称的全局变量num=100没有引用到,自然就报错了

当然处可以改为不声明全局变量,这样就需要新建一个不同名称的局部变量就可以了

热心网友 时间:2022-04-18 18:14

看上面的代码,如果不加global,Python解释器认为,num是函数内部声明的局部变量。

追问那可是我的代码是我在函数外定义num的值他理应就是一个全局变量啊,我不加global他在函数内也应该能取到啊,为什么还要加呢?麻烦您回答下,谢谢。

追答上面给你举了例子
你不加global,函数内部的num已经指向了新的引用,而不是外部的那个num。
所以再次打印外部num的值,仍然是100。

热心网友 时间:2022-04-18 19:48

你这样理解吧,内部变量在使用的时候,会检查外部是否有同名变量,有的话,就是他了;
但是在函数体内对这个变量再次赋值,其实更改的只是函数体内的变量,外部变量没有更改到;
所以,如果你希望定义的外部变量可以在函数体内进行修改,那就要加global,不然的话,函数体内修改是传不到外面的;

热心网友 时间:2022-04-18 21:40

简单来说就是把global声明去掉之后,num是未定义的,num=num-1是用未定义的一个变量减一再赋值给未定义的变量,报的错就是本地变量未定义。global是声明这个变量在全局环境globals()里。可以把num=100放入到函数中看看结果。上面一个例子,你在函数里加一个add=add[0]试试,也会报错。追问请问我给的num=100难道不是给num的定义吗?您说的我没能完全理解

追答python不允许函数内修改未声明的全局变量,这是*全局变量范围的约束,不加声明直接改的话,在编写程序中很大程序上会因为别的程序跟全局变量命名相同而出现意外结果

热心网友 时间:2022-04-18 23:48

加上跟global ……就好了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
qq厘米秀怎么获得资格手机qq厘米秀怎么开启 计算机应用技术是什么样的专业 高职报考什么专业好 绿洲怎么打开原图 绿洲打开原图方法 绿洲这个app是什么 绿洲这个app有什么用 晚上睡觉手臂酸痛怎么回事 睡觉胳膊酸痛是怎么回事 早上起来手臂肌肉酸痛怎么回事 睡醒了手酸痛是什么原因 苹果手机没有开银行卡如何收微信红包? 头发直立长的, 适合剪什么发型。看起比较好看的,求各位大神! 去日本旅游让父母写担保函可以不交保证金吗? 头发向上的都有什么发型? 今天去把我的移动手机号注销了 为什么不是空号而是停机 那为什么我28号注销的手机号,现在拨打是停机呢。 我手机号码刚注销,打进去的电话显示已停机,不是空号,怎么回事 手机消户了怎么还是停机状态 联通手机号注销后显示停机怎么回事? 手机号注销两年任然显示停机怎么回事? 做梦梦见我得了病家人叫我吃药去死 平顶山张良买房有无息贷款吗 手机号销户两年拨打还是处于停机状态,算是销户成功了吗? 牧马人2.8柴油版怎么样 我刚才去联通营业厅去办理注销了,但是手机卡是停机状态,怎么回事? JEEP牧马人耗油吗? 吊车租赁有哪些安全要求 我是河南平顶山一个煤矿职工,现在想贷款怎么办 牧马人适不适合自驾旅行,每公里的油耗大概是多少? 我今天去注销手机号码,怎么还是显示停机? 我今天去联通营业厅把手机卡注销了,为什么现在打是停机状态 有一种发型有点像板寸头,但是前面的头发比板寸长也是立起来的,这种发型叫什么?附一张图片更好 如何让头发立起来 azd9291服多长时间会有效 烫什么发型能让头发立起来一些 是直的那种 azd9291影响心脏 苹果5序列号查询怎么查不到是不是翻新的c31jrcazdtwf 头发直直地竖起的男生剪什么发型好? 哪位知道azd9291奥希替尼报价多少一盒啊?? 我的头发很硬,老是竖着,请问留什么样头型好? egf816对azd9291哪个好 什么情况下吃泰格松AZD9291有效? 不多的有哪些wifi,笔记本可以开启的wifi软件 哪里能买到抗癌药奥希替尼Osimertinib,?AZD9291? 我爸是肺鳞癌晚期,现在已经骨转移。很痛苦。求AzD9291。谁有能否转让 需要托朋友在印度帮忙帮AZD9291泰瑞沙仿制药,请问能直接带回来吗?会 azd9291对没有t790m突变的有效吗 从三溪地铁去增城区朱村横塱工业区怎么坐地铁? 香港那里有奥希替尼?azd9291,Tagrisso?tagrix? 去广州新塘镇怎么坐车 azd9291起效改善哪些症状