闭包的基础知识详解

 闭包

 大家都感觉闭包是很基础 但是很绕的东西。那我就根据一串代码给大家讲解一下吧。

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的值。

这就是闭包的基础知识点 是不是很简单呢?

有什么问题请评论区留言哦~

猜你喜欢

转载自www.cnblogs.com/pythonstuding/p/9015295.html