- A+
所属分类:Python学习
global 全局变量
- num = 5
- def Li():
- num =10
- print(num)
- Li() #10
- print(num) #5
- num = 5
- def Li():
- global num #申明num为全局变量
- num =10
- print(num)
- Li() #10
- print(num) #10
内嵌函数(内部函数)
- def num1():
- print('我是mum1')
- def num2():
- print('我是num2')
- def num3():
- print('我是num3')
- def num4():
- print('我是num4')
- num4()
- num3()
- num2()
- print(num1())
- # 我是mum1
- # 我是num2
- # 我是num3
- # 我是num4
- # None
闭包(closure)
- def lee1(num):
- def lee2(num1):
- return num *num1
- return lee2
- i = lee(3)
- i(5)
- 15
- #另一种
- lee1(3)(5)
- 15
- def Fun1():
- x =5 #非全局变量的外部变量
- def Fun2():
- x*=x
- return x
- return Fun2()
- Fun1()
上述函数报错:UnboundLocalError: local variable 'x' referenced before assignment
注释:局部变量X,不能在没有赋值之前被引用
python2.x系列可以用
- def Fun1():
- x =[5] #非全局变量的外部变量
- def Fun2():
- x[0]*=x[0]
- return x[0]
- return Fun2()
nonlocal
Python3.x系列可以使用nonlocal
- def Fun1():
- x =5 #非全局变量的外部变量
- def Fun2():
- nonlocal x
- x*=x
- return x
- return Fun2()
- print(Fun1())
单词扩展:
- global : 总体的
- nonlocal: 非局部的
扩展阅读:
版权注释:
Python课程来源于鱼C论坛:http://bbs.fishc.com/forum-243-1.html 版块,课程内容为免费内容,如果你喜欢该课程,建议购买VIP账号支持小甲鱼,官方网店:https://fishc.taobao.com/)。
本内容为在李金龙在学习课程中做的日记记录,方便自己以后查找相关信息,另一方面也希望自己写下的东西可以帮助到别人。
课程内容:http://blog.fishc.com/3112.html