首页 > 其他分享 >20 函数去上级查找 案例

20 函数去上级查找 案例

时间:2024-09-25 22:48:05浏览次数:1  
标签:20 list ret 案例 查找 func lambda size

  1. 去上级查找-案例1
size = 19
func_list = [lambda: 1 + size, lambda: 2 + size, lambda: 3 + size]
# 此时函数体中没有size,会去上层或者全局变量里面查找,然后将 2+ size的值进行返回
ret = func_list[0]()  # func_list[0] 内部不可见,只有加()才会执行 1
func_list[1]()  # 2
func_list[2]()  # 3
print(ret)

  1. 去上级查找案例2

size = 19
func_list = [lambda: 1 + size, lambda: 2 + size, lambda: 3 + size]
size = 20
ret = func_list[1]()  # func_list[0] 内部不可见,只有加()才会执行 1
print(ret)
"""
1、在全局作用域,放了一个size = 19
2、在func_list 定义了一个函数,定义的函数存在在列表里面,此时函数未执行
3、在定义了一全局 作用域size ,此时size的值由:19 变成了20 
4、这时在去调用:func_list[1]() 这个函数时,会去找size,会在内存中的上级作用域里找,而上级作用域执行到:func_list[1]()时,此时的size已经由:19变成了20,此时size用的值是20,此函数返回值为:22
"""
  1. 去上级查找案例3
# 去上级作用域查找案例3
size = 19
func_list = [lambda: 1 + size, lambda: 2 + size, lambda: 3 + size]
ret = func_list[1]()  #  21
print(ret)

size = 20

ret = func_list[1]()  #  22
print(ret)

#要看函数执行时上级作用域此时的值。当看到代码时是没有执行的,只有去执行时,他才会去查找他里面的这个值

标签:20,list,ret,案例,查找,func,lambda,size
From: https://www.cnblogs.com/jhchena/p/18432453

相关文章

  • 02 函数编程案例 邮件发送
    2、函数式编程-邮件发送defsend_email(): importsmtplibfromemail.mime.textimportMIMETextfromemail.utilsimportformataddrmsg=MIMEText('老板,我想演男一号,你想怎么着都行。','plain','utf-8')msg['From']=formataddr......
  • 2024主流前端框架对比和选择
    Hello,大家好,我是Feri,一枚十多年的程序员,同时也是一名在读研究生,关注我,且看一个平凡的程序员如何在自我成长,CodingSir是我想打造一个编程社区,只为各位小伙伴提供编程相关干货知识,希望在自我蜕变的路上,我们一起努力,努力什么时候开始都不晚,我,从现在开始做起!一、前言     ......
  • 05 in 判断是否包含查找内容示例 包含 字符串 列表 元组 字典
    1、strv="Python全栈21期"if"全栈"inv:print('含敏感字符')2、list/tuplev=['alex','oldboy','藏老四','利奇航']if"利奇航"inv:print('含敏感')3、dictv={'k1......
  • 2024.9.24 Python与C++面试八股文
    1.externextern关键字用于在多个文件中引用同一个全局变量的声明在一个头文件中,如果这个变量声明了,但是在cpp文件中没找到他的定义,那么编译就会报错,但是如果加了extern,编译器就不会给头文件报错,而是给cpp文件报错,如果函数没定义的话。或者定义出错的话。2.关于反复调用简......
  • [GYM103119K][2020 ICPC Asia Macau] Candy Ads 题解
    题意简述有\(n\)个广告,每个广告在一个时间段内占据二维平面的矩形,\(m\)个约束表示两个广告至少有一个要被选择,选择若干广告,满足所有约束且同时刻不能有重叠的广告。Kosaraju算法流程在正图上跑一遍DFS,给每个位置打上时间戳从时间戳大到小枚举点,在反图上跑DFS,这个时候对......
  • 2024.9 做题笔记
    CF1575IIllusionsoftheDesert看这个边权这么复杂,猜测其必然有一些性质。对\(a_u,a_v\)的正负分讨易得\(\max(|a_u+a_v|,|a_u-a_v|)=|a_u|+|a_v|\),树剖树状数组单点修改链求和即可。ABC177FIhateShortestPathProblem考虑dp,设\(f_{i,j}\)表示到达第\(i\)行第\(......
  • 20 集合 set 独有功能
    1、add#v={1,2}#v.add('Lishaoqi')#v.add('Lishaoqi')#print(v)2、discard#v={1,2,'李邵奇'}#v.discard('李邵奇')#print(v)3、update#2.3批量添加#v={1,2,'李邵奇'}#v.update({11,22,33})#print(v)4、i......
  • 2024年一款非常好用的视频剪辑软件会声会影Corel VideoStudio2024,非常适合新手
    随着数字媒体的飞速发展,视频剪辑已成为表达创意、传播信息的重要工具。2024年,视频剪辑软件市场迎来了新一轮的革新与竞争。今天,我们就来盘点一下这一年里备受瞩目的十大视频剪辑软件,无论你是初学者还是专业团队,都能在其中找到适合你的那一款。会声会影CorelVideoStudio2024一......
  • 20240906
    NewDimensions我们假设枚举\(a,b\)那么我们显然可以发现\(a^2+b^2+c^2-ab-ab-bc\)中\(c\)越大越好#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=5e3+5;intn,v[N],ans;signedmain(){cin>>n;for......
  • 20240925 随机训练
    Yukicoder2897题目描述给定两个点集\(S,T\),我们定义\(d((x_1,y_1),(x_2,y_2))=|x_1-x_2|+|y_1-y_2|\)。我们定义两个集合\(S,T\)的距离\(D(S,T)=\min\limits_{s\inS,t\inT}\{d(s,t)\}\)。求\(D(S,T)\)。思路我们把每个\(S\)中的元素放在一起做一个多源bfs,然后对......