首页 > 其他分享 >10.函数对象 与 闭包函数

10.函数对象 与 闭包函数

时间:2024-04-16 16:35:42浏览次数:24  
标签:闭包 10 函数 作用域 对象 inner 内存地址

【一】函数对象

Python中一切皆对象

  • 可直接被引用

    • 定义一个函数,用一个新的变量名来存,来调用
  • 可作为元素被储存

    • 功能字典中函数的地址
  • 可作为参数传递给另一个函数

    • 将函数的内存地址作为参数
  • 函数的返回值可以是函数

    • 直接将函数的内存地址返回

【二】闭包函数

1)闭包概念

指包含对自由变量的函数和对这些变量的引用环境组合

基于函数对象的概念,可将函数返回到任意位置去调用

2)闭包函数概念

内嵌函数对外部作用域由有引用的函数

函数被当作数据处理时,始终以自带的作用域为准

def outer():
    def inner()
    	...
	return inner

3)闭包函数的应用

装饰器

函数工厂模式

封装

标签:闭包,10,函数,作用域,对象,inner,内存地址
From: https://www.cnblogs.com/Mist-/p/18138513

相关文章

  • CF1097F Alex and a TV Show 题解
    题目链接点击打开链接题目解法很牛的套路啊!看到集合并,且只要求奇偶性的问题,第一个想到\(bitset\)\(1,2,4\)操作都是好维护的,关键是第\(3\)个操作看到$\gcd$,首先想到莫反令\(c_{x,i}\)为集合\(x\)中数\(i\)的出现次数则\(c_{x,i}=\sum\limits_{i|j}\sum\limit......
  • kylin V10 SP3将openssl降级到1.0.2u
    前言kylinV10SP3的openssl版本较高OpenSSH_9.5p1,OpenSSL1.1.1f 31Mar2020,程序编译环境必须是OpenSSL1.0.2,故需要降级,记录一下。下载安装包下载openssl1.0.2u安装#解压tarzxvfopenssl-1.0.2u.tar.gz#安装cdopenssl-1.0.2u./config--prefix=/usr/local/sslmak......
  • 华为实习4.10机考第二题C++代码
    考的是简单的并查集这道题考法就是并查集,若两个图片相似度大于0,则将他们放到一个家族中,同时维护家族的相似度总和。注意M矩阵是对称矩阵,所以需要避免重复维护相似度,因此可以只针对M矩阵的下三角矩阵或上三角矩阵中的连接块,计算相似度总和;或考虑整个M矩阵,然后相似度总和除......
  • js--参数归一化-日期格式化函数
    //参数归一化///*日期时间格式化date:日期时间isFillZero:是否需要0补位*/functionformate(date,formater,isFillZero=false){formater=_formatNormalize(formater)function_isFillZero(value,length){if(isFillZero){return(value+'').p......
  • 1025 反转链表
    我看其他博客用的reverse,但是下标我真的有点糊涂,以下是参考某位dalao的。#include<bits/stdc++.h>usingnamespacestd;structnode{ intsno; intdata; intnext;}s[100010];intmain(){ intstart,cnt,fz;//start cin>>start>>cnt>>fz; for(inti=0;i<cnt......
  • P10288 [GESP样题 八级] 区间
    原题链接题解本题的优化真的很重要!!把所有元素出现的下标用map套vector存起来,然后二分查找code#include<bits/stdc++.h>usingnamespacestd;map<int,vector<int>>mp;intmain(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);//缺一不可intt;ci......
  • P10252 线性变换
    原题链接题解本题虽然有思维题做法,但是我认为不具有普世意义,本题的特点在于分治法,即普通算法在平均条件下表现良好,但是在极端条件下极慢,这时候我们需要将极端条件拎出来另做判断code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;intmain(){ios:......
  • 裁员了!别错过2024年大数据工程师必备的10项技能
    在当今快速发展的世界中,数据被视为新的石油。随着对数据驱动洞察的日益依赖,大数据工程师的角色比以往任何时候都更为关键。这些专业人员在管理和优化组织内的数据操作中扮演着至关重要的角色。在本文中,我们将探索2024年大数据工程师必须具备的十项技能。理解大数据工程师的角色......
  • CentOS 7.9编译安装Python-3.10.13
    目录查看CentOS版本、系统默认gcc版本、Python版本和pip版本部署Python-3.10.13测试将yum中的Python版本修改为系统原来的2.7.5版本查看CentOS版本、系统默认gcc版本、Python版本和pip版本cat/etc/redhat-releasegcc--versionpython-Vpip-V部署Python-3.10.13下载......
  • day10_01_我的Java学习笔记 (JavaSE进阶课程预备)
    JavaSE进阶课程预备1.JavaSE加强课程简介2.IDEA开发模式统一工程,相当于一个小区的院子;模块,是小区的哪一栋;包,是这栋楼的那一单元类,是这个单元的哪一层楼;对象,是这层楼具体的某一户房间。eg:滢水山庄二区--工程9栋--模块4单元--包8楼--类......