函数返回值以及函数调用原理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、函数返回值应用场景
  • 二、return作用
  • 二.return返回多个数据值
  • 三.函数调用原理

一、函数返回值应用场景

1.在函数中定义的局部变量,或者通过计算得出的局部变量,想要在函数外部访问和使用,此时就可以使用return关键字,将这个返回值返回

二、return作用

1.函数想要返回一个数据值,给调用的地方,需要使用关键字return
函数关键字作用:1.将return后边的数据值进行返回。2.程序代码遇到return,会终止(结束)执行
注意点:return 关键字必须写在函数中
举例:

def add(a, b):
    c = a + b #想要将求和的结果c,返回,及函数外部使用求和的结果,不在函数内部打印结果
    return c  #函数遇到return就结束了,不会执行return之后的代码


result = add(100, 200)
print(result)

二.return返回多个数据值

def add(a, b):
    c = a + b
    d = a - b
    # 需求:想要将c和d都进行返回,那就可以将c和d放到容器中进行返回
    # 思考:容器可以保存多个数据值,那就可以将c和d放到容器中进行返回
    return [c, d]  #也可以返回元组———return(c,d)
                   #也可以返回字典---{'c':c,'d':d}


result = add(10, 20)
print(result)

1.return 关键字后边可以不写数据值,默认返回None

def func():
      xxx
      return   #返回None,终止函数的运行的
# 函数可以不写 return,返回值默认是None
def func():
    xxx
    pass

三.函数调用原理

1.先来一串代码分析一下:

 def foo1(b, b1=3):
     print('foo1 called', b, b1)


 def foo2(c):
     foo3(c)
     print('foo2 called', c)


 def foo3(d):
     print('foo3 called', d)


 def main():
     print('main called')
     foo1(100, 101)
     foo2(200)
     print('main ending')


 main()
 # 全局帧中生成foo1,foo2,foo3,mai函数对象
# main函数调用
# main中查找内建函数print压栈,将常量字符串压线,调用函数,弹出栈顶
# main中全局查找函数foo1压线,将常量100,101压线,调用函数foo1,创建栈帧。print函数压栈,字符串和变量b,b1压栈,调用函数,弹出栈顶,返回值
# main中全局查找foo2函数压线,将常量200压线,调用foo2,创建栈帧。foo3函数压线,变量c引用压线,调用foo3,创建栈帧。
# foo3完成print函数调用后返回。foo2恢复调用,执行print后,返回值。main中foo2调用结束弹出栈顶。main继续执行print函数调用,
# 弹出栈顶。main函数返回

调用过程就是要一步一步去对应好关系。

你可能感兴趣的:(python,开发语言)