局部变量
ass={}def new():
pro='请输入用户名:'
while True:
name=input(pro)
if name in ass:
pro='此用户名已存在,请重新输入:'
continue
else:
break
pw=input('请输入密码:')
ass=pw
print('注册成功,赶紧登录试一下')
这个函数对函数外的ass字典进行了修改,这是因为字典并不属于变量,所以不受 在未使用global 的前提下,局部变量不能修改全局变量的约束嘛? {:10_257:}{:10_254:} 今天的我更强了 发表于 2020-6-5 15:12
字典,列表等数据类型都没有作用域之分。 可变类型可以不用global。 本帖最后由 Twilight6 于 2020-6-5 15:23 编辑
可变容器类型的值不对容器本身进行改变,只对容器内部的元素进行变化是允许的
列表,字典等都是可变容器类型的值
对本身进行改变就会触发屏蔽效果如重新赋值:
ass = {'test':'帅'}
屏蔽机制:若在局部创建了个与全局变量同名变量,会触发屏蔽效果
在函数内部创建个与全局变量同名的局部变量,暂时屏蔽外部的全局变量
但是只要出了这个函数,这个局部变量就会消失变会原来的全局变量
qiuyouzhi 发表于 2020-6-5 15:13
字典,列表等数据类型都没有作用域之分。
谢谢
页:
[1]