zoukankan      html  css  js  c++  java
  • 函数对象和闭包

    1.函数对象(精髓是可以把函数当成变量去用)

    函数对象指的是函数可以被当作'数据'来处理,具体可以分为四个方面的使用

    1.1 函数可以被引用

    def add(x,y):
    	return x+y
    func = add
    func(1,2)
    3
    

    1.2可以当做函数的参数传给别的函数

    def foo(x):
    	print(x)
    foo(func)  #foo(func的内存地址)
    

    1.3可以把函数当成一个函数的返回值

    def bar():
    	return add
    func = bar()
    func(1,2)
    3
    

    1.4函数可以作为容器类型的元素

    l=[func,2,3]
    l[0]()  #调用函数
    

    2.闭包函数

    闭包函数=名称空间与作用域+函数嵌套+函数对象

    "包“:函数包含对外层函数作用域名字的引用(不是对全局作用域) 只要是外层的函数,第几层无所谓,但不能是全局作用域

    • 闭包:若内嵌函数包含外部函数作用域(而非全局作用域)中变量的引用,那么该'内嵌函数'就是闭包函数,简称闭包。
    • '闭'代表函数是内部的,'包'代表函数外'包裹'着对外层作用域的引用 ,因而无论在何处调用闭包函数,使用的仍然是包裹在其外层的变量。
  • 相关阅读:
    HTTP处理程序介绍
    c# Enum获取name,value和description
    如何成为优秀的软件人才
    关于系统设计分层
    从DLL中加载启动窗体
    摩斯密码
    休息下
    关于博文转载
    整合TextBox与Label 创建新控件EFLabelText
    ProC连接Oracle
  • 原文地址:https://www.cnblogs.com/xiaoxuanworking/p/14350980.html
Copyright © 2011-2022 走看看