zoukankan      html  css  js  c++  java
  • 闭包的定义及使用

     1 """
     2   1.什么是闭包?
     3      闭包其实就是一个函数
     4   2.如何创建闭包?
     5      a.要有函数嵌套(外部函数,内部函数)
     6      b.内部函数中要使用外部函数的变量
     7      c.外部函数必须有一个返回值,返回内部函数名
     8   3.如何使用闭包?
     9      f = funOut(100) # 调用外部函数,用 f 变量指向内部函数
    10     result = f(200) # 通过变量调用函数
    11 """
    12  # 使用闭包,完成求两个数的和
    13  def sum(a,b):
    14      return a + b
    15  
    16  """
    17  定义闭包,满足三条件
    18  def funout(num1):
    19      def funIn(num2):
    20          return num2 + num1
    21      return funIn #返回一个函数,函数也是一个变量
    22 """
    23  def funout(num1):
    24      def funIn(num2):
    25          #内部函数修改外部函数的变量
    26          nonlocal num1 #修改外部函数变量加nolocal
    27          num1 += 100
    28          return num2 + num1
    29      return funIn #返回一个函数,函数也是一个变量
    30      
    31  f = funout(100) #此时f 和 funIn 均指向内部函数
    32  # 当前变量 f 指向函数
    33  print(type(f)) # <class 'function'>
    34  
    35  #当前变量 f 指向内部函数,可以通过 f 调用这个内部函数
    36  result = f(200)
    37  print('两个数的和:',result)
    1  <class 'function'>
    2  两个数的和: 400
    正是江南好风景
  • 相关阅读:
    OAuth2.0 基础概述
    Ubuntu安装Gogs服务
    ASP.NET WebAPI 生成帮助文档与使用Swagger服务测试
    ASP.NET MVC 中的路由
    升级Ghost
    搭建Golang开发环境
    TDD并不是看上去的那么美
    .NET Framework 源码查看与调试
    在 ASP.NET MVC 中使用异步控制器
    SpringMVC+FreeMarker+Mybatis 整合
  • 原文地址:https://www.cnblogs.com/monsterhy123/p/12900469.html
Copyright © 2011-2022 走看看