name = 'alex'
def foo():
name = 'jinling'
def bar():
print(name)
return bar
a = foo()
print(a)

阅读上述代码,理解 a 得到的是函数bar 的内存地址,想要运行bar 只需a(),因为bar 函数没有return,所以返回了None

name = 'alex'
def foo():
name = 'jinling'
def bar():
print(name)
return bar
a = foo()
print(a())

二、同理

def test1():
print('in the test1')
def test2():
print('in the test2')
return test1 res = test2()
print(res)
a = res()
print(a)

三、

def foo():
name = 'lhf'
def bar():
name = 'jinling'
def tt():
print(name)
return tt
return bar
a = foo() # 得到bar的内存地址
b = a() # 运行bar 得到tt的内存地址
c = b() #运行 tt 打印 Jinling
print(c) # 得到tt的返回值

上述运行可以用 foo()()() 代替

##########  匿名函数###########

lambda效果等同于以下函数

def cal(x):
return x + 1 res = cal(10)
print(res) a = lambda x: x + 1 # x为形参
print(a(10))

匿名函数不能有复杂的逻辑,只能是一步的过程(一个return的结果)

name = 'alex'
f = lambda x: x + '_sb'
print(f(name))

可以是多个参数

a = lambda x, y, z: (x + 1, y + 1, z + 1)
print(a(1, 2, 3))

匿名函数不应该独立存在,也不应该赋值,而和其他函数连用,以后再写~

最新文章

  1. sparksql---通过pyspark实现
  2. JS的解析机制
  3. Java Hour 45 Hibernate ( 2 )
  4. putty基本操作
  5. JavaScript中Eval()函数的使用
  6. CSS3文字描边 CSS3字体外部描边
  7. Android随笔--使用ViewPager实现简单地图片的左右滑动切换
  8. Ajax的ActionLink方法(适用于异步加载)
  9. HDU 4351 Digital root 线段树区间合并
  10. Build A Micro Team
  11. ehcache与redis的比较与应用场景分析(转)
  12. [物理学与PDEs]第3章习题2 仅受重力作用的定常不可压流理想流体沿流线的一个守恒量
  13. 剑指offer数组2
  14. 文件中间修改内容遇到OSEerror
  15. 用tar命令把目标压缩包解压到指定位置
  16. Ioc及Bean容器(三)
  17. C# 读写App.config配置文件
  18. 如何利用 Jmeter 测试上传文件
  19. 自动化运维工具-pssh工具安装配置及简单使用讲解
  20. Git中清除远程仓库HTTPS认证信息的方法

热门文章

  1. Android WebView设置背景透明
  2. OpenProj打开不了或者提示”Failed to load Java VM Library”的错误的解决方案
  3. 10 jQuery的事件绑定和解绑
  4. 【shell学习4》》】系统化整理大纲
  5. 【设计模式】行为型11解释器模式(Interpreter Pattern)
  6. Jenkins的安装与使用(一)
  7. Codeforces Round #565 (Div. 3) A
  8. pytest 安装和入门
  9. octavia的实现与分析(一)·openstack负载均衡的现状与发展以及lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比
  10. 从无到有构建vue实战项目(二)