鱼C论坛

 找回密码
 立即注册
查看: 2534|回复: 1

求助 global变量具体使用方式

[复制链接]
发表于 2020-10-18 15:49:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import easygui as g
list1 = ['*用户名','*真实姓名','固定电话','*手机号码','QQ','*E-mail']
list3 = []
def account_center():
    global list3
    list2 = g.multenterbox('【*真实姓名】为必填项\n【*手机号码】为必填项\n【*E-mail】为必\
填项','账号中心',values =list3,fields=list1)
    for i in (0,1,3,5):
        if (list2[i]).isspace():
            g.msgbox(list1[i]+'不能是空格,请重新输入','账号中心','重新输入')
            list3 = list2
            account_center()
        if (list2[i]) == '':
            g.msgbox(list1[i]+'不能为空,请重新输入','账号中心','重新输入')
            list3 = list2
            account_center()      
account_center()   
若函数中不加global,则会报错提示UnboundLocalError: local variable 'list3' referenced before assignment
为什么会这样啊 求大佬解答
是否若在定义的函数中引入变量 则需用global声明一下?
感谢大佬们解答!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-19 09:09:52 | 显示全部楼层
在函数内要引用外部变量,则需要用
global 变量。
例如函数
def ds():
    x +="你好"                          
   return x
x = input('请输入任意字符')    #变量X的值是你输入的内容,这里的X是全局变量
ds()                        
print(x)
=================
上述例子运行结果是什么?会报错。因为在函数ds()里的x变量,是函数内的局部变量,未初始化所以报错
想引用外部的变量x怎么办?就要使用global了

def ds():
    global x
    x +="你好"                          
   return x
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 08:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表