小鸡炖葫芦 发表于 2020-10-18 15:49:32

求助 global变量具体使用方式

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).isspace():
            g.msgbox(list1+'不能是空格,请重新输入','账号中心','重新输入')
            list3 = list2
            account_center()
      if (list2) == '':
            g.msgbox(list1+'不能为空,请重新输入','账号中心','重新输入')
            list3 = list2
            account_center()      
account_center()   
若函数中不加global,则会报错提示UnboundLocalError: local variable 'list3' referenced before assignment
为什么会这样啊 求大佬解答
是否若在定义的函数中引入变量 则需用global声明一下?
感谢大佬们解答!!

笨鸟学飞 发表于 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
页: [1]
查看完整版本: 求助 global变量具体使用方式