闭包
大家都感觉闭包是很基础 但是很绕的东西。那我就根据一串代码给大家讲解一下吧。
def create_line(a):
def line():
print(a)
return line
ret = create_line(“哎呦,不错啊”)
ret()
这就是一个简单的闭包
这个闭包的创建过程:
创建一个外层方法 传入一个参数 让内层方法引用外层方法的参数 在外层方法中返回内层方法的引用。(此处的引用类似调用函数 和调用函数相比 只有一个小括号的区别 此处无小括号)
闭包的意义是有提高代码可复用性的作用。 为什么这么说呢? 请看下边的代码
这个是一个一元一次方程 y=kx + b 想让这方程能够使用 如何使用闭包实现呢?
def a(k,b): # 先定义一个方法将参数k(系数)b(节距)传入 这两个参数假设为已知
def b(x): # 传入自变量x
print(k*x+b) # 将方程式传入
return b # 返回b函数的引用
c = a(1,3) # 调用a函数 返回值为b函数的引用 传入参数 k,b的值
c(4) # 调用b函数 向中传入参数c的值
d = a(2,3)
e(5)
....
这样就会提高代码的重复利用率。
而且 c 和 e是相互不影响的 就是 我们之后 在给c d 直接赋值就会直接使用对应k,b的值。
这就是闭包的基础知识点 是不是很简单呢?
有什么问题请评论区留言哦~