python中的闭包,函数
2017-10-28 15:28
260 查看
1.查看一个对象有什么属性方法 : dir(对象) 对象.__name__ :查看对象的名字
对象.__doc__ :查看对象的说明文档
2.闭包可以理解为特殊的函数,定义:我们定义了一个函数,在函数的内部我们又定义一个函数,并且这个函数用到了外部函数的变量,我们将这个函数以及用到的变量称为闭包
闭包的外部函数返回内部函数。
下面 一个简单的闭包例子:
def set_line(a,b):
def line(x):
return a*x+b
return line
line1=set_line(2, 3)
print(line1(2))
print(line1(3))
line2=set_line(3,5)
print(line2(2))
print(line2(3))
结果依次为7,9,11,14
3.闭包,内层函数改变外层函数变量的方法
例如 :def set_coun(num):
# 闭包函数变量空间
def inner():
#局部变量空间 nonlocal 声明了num不是一个局部变量 只在python中有 且在python3中这样用
nonlocal num
num+=1
return num
return inner
set_c=set_coun(10)
print(set_c())
在python2中修改外层函数变量,不存在nonlocal这个关键字
def set_coun(num):
# 闭包函数变量空间
temp=[num]
def inner():
temp[0]+=1
return temp[0]
return inner
set_c=set_coun(10)
print(set_c())
<
4000
br />
对象.__doc__ :查看对象的说明文档
2.闭包可以理解为特殊的函数,定义:我们定义了一个函数,在函数的内部我们又定义一个函数,并且这个函数用到了外部函数的变量,我们将这个函数以及用到的变量称为闭包
闭包的外部函数返回内部函数。
下面 一个简单的闭包例子:
def set_line(a,b):
def line(x):
return a*x+b
return line
line1=set_line(2, 3)
print(line1(2))
print(line1(3))
line2=set_line(3,5)
print(line2(2))
print(line2(3))
结果依次为7,9,11,14
3.闭包,内层函数改变外层函数变量的方法
例如 :def set_coun(num):
# 闭包函数变量空间
def inner():
#局部变量空间 nonlocal 声明了num不是一个局部变量 只在python中有 且在python3中这样用
nonlocal num
num+=1
return num
return inner
set_c=set_coun(10)
print(set_c())
在python2中修改外层函数变量,不存在nonlocal这个关键字
def set_coun(num):
# 闭包函数变量空间
temp=[num]
def inner():
temp[0]+=1
return temp[0]
return inner
set_c=set_coun(10)
print(set_c())
<
4000
br />
相关文章推荐
- python返回函数闭包
- 实例讲解Python的函数闭包使用中应注意的问题
- python函数对象和闭包
- python函数作用域与闭包
- Python函数中的函数(闭包)用法实例
- 5.3 Python 函数对象与闭包
- Python函数小结(1)--参数类型(*, ** 的区别), 闭包
- python3 第二十一章 - 函数式编程之return函数和闭包
- Python(5)————函数闭包方法
- Python入门 第四天(函数式编程、map、reduce、filter、排序函数、函数返回函数、闭包、匿名函数lambda)
- Python中有关函数作为一个函数的返回值(闭包)
- Python中函数的嵌套与闭包
- 【转】python 函数闭包
- python基础,计数器函数(闭包的使用)
- python函数里面的装饰器和闭包的理解
- python中对 函数 闭包 的理解
- python-内部函数,闭包
- python[变量作用域-函数-闭包-装饰器-生成器]
- Python中的函数对象与闭包
- Python(2.7.6) 函数对象与闭包