返回值可以任何类型,返回可以是函数,返回函数还可以再被调用
仅仅返回函数是无法运行的。要运行需要加上()
没有返回值的时候,默认返回值为空,None
1 def test1(): 2 print("in the test1") 3 def test(): 4 print("in the test") 5 return test1 6 print(test) # <function test at 0x0000000002652268> 返回一个对象 7 res = test() # 执行对象,执行函数得到返回值 test1这个对象,不信你看下面的打印 8 print(res) # <function test1 at 0x000000000200C1E0> 和test1特么一样的 9 print(test1) # <function test1 at 0x000000000205C1E0> 没骗你吧 10 print(res()) # res()相当于再执行 test1()
1 name = "alex" 2 def foo(): 3 name= "yangtuo" 4 def bar(): 5 # name = "tuo" 6 print(name) 7 return bar # 返回一个这个bar的内存地址 8 a = foo() # 拿到内存地址 9 print(a) # 打印出来看一眼 <function foo.<locals>.bar at 0x00000000025C96A8> 10 a() # 运行内存地址的代码
1 def foo(): 2 name = "lhf" 3 def bar(): 4 name = "wupeiqi" 5 def tt(): 6 print(name) 7 return tt 8 return bar 9 10 bar = foo() 11 tt = bar() 12 print(tt) 13 tt() 14 15 foo()()() # 等同于上面的4命令