北京哪里白癜风病看的好 http://baidianfeng.39.net/a_zhiliao/160122/4763423.html完整的复习完了,直接贴代码
"""学习内容1.局部变量和全局变量(global)2.闭包"""name="yft"#声明在函数外部的变量是全局变量deffunc1():s="abcd"#函数内部声明的变量,叫做局部变量,仅限在函数内部使用print(s)func1()#abcd#print(s)这里会报错deffunc2():name="yueyue"#外部函数和内部函数同名,优先打印内部的print(name)"""deffunc3():print(name)#不能在函数内部中修改全局变量name+="会弹吉他"(会报错)"""#修改后deffunc4()lobalname#不修改可以不用声明,要修改则需要声明全局变量print(name)#yft"""不能在函数内部中修改全局变量"""name+="会弹吉他"func4()print(name)#yft会弹吉他#list是可变类型,不用global也能修改#内部函数:deffunc()声明变量n=#局部变量list1=[1,5,2,6]#局部变量definner_func():nonlocaln#对list1内的数字进行+5的操作forindex,valueinenumerate(list1)st1[index]+=5#列表为可变类型print(list1)#[6,10,7,11]n+=50"""由于n为不可变变量,因此要使用nonlocal/nonlocal只能在封装函数中使用"""print(n)#inner_func()func()a=#全局变量print(globals())#查看全局变量有哪些deffunc5()声明局部变量b=definner()lobala#内部函数修改全局变量(不可变)要用globalnonlocalb#内部函数修改外部函数不可变变量时,首先要在外部已经声明条件下使用nonlocal#尝试修改cc=c+=#内部的变量可以直接修改#尝试修改bb+=#尝试修改aa+=print(a,b,c)#print(locals())#查看当前函数中声明的变量(如b,c)inner()print(locals())#查看当前函数中声明的变量#调用func5()#闭包"""闭包特点:1.保存返回闭包时的状态(外层函数变量)"""#闭包例子1defadd(a,b)a=5,b=10c=10#c=0definner_fun():s=a+b+cprint("相加的结果是:{}".format(s))returninner_fun#result接收了inner_fun函数返回的值result=add(5,10)result()#闭包例子2defmi(cifang)efjishu(base):returnbase**cifangreturnjishusquare=mi(3)print(square(5))
分析闭包例1:
预览时标签不可点收录于话题#个上一篇下一篇