函数返回值
函数返回值:
- Python函数使用return语句返回“返回值”
- 所有函数都有返回值,如果没有return语句,隐式调用returnNone
- return语句并不一定是函数的语句块的最后一条语句
- 一个函数可以存在多个return语句,但是只有一条可以被执行。如果没有一条return语句被执行到,隐式调用returnNone
- 如果有必要,可以显示调用returnNone,可以简写为return
- 如果函数执行了return语句,函数就会返回,当前被执行的return语句之后的其它语句就不会被执行了
- 返回值的作用:结束函数调用、返回“返回值”
- 函数不能同时返回多个值
- return1,3,5看似返回多个值,隐式的被python封装成了一个元组
- x,y,z=showlist()使用解构提取返回值更为方便
函数作用域
作用域
一个标识符的可见范围, 这就是标识符的作用域; 一般常说的变量的作用域
上例中的x不可以访问到, 会抛出异常(NameError:name ‘x’ is not defined), 原因在于函数是一个封装, 它会开辟一个作用域, x变量被限制在这个作用域中, 所以在函数外部x变量不可见
注意:每一个函数的都会开辟一个作用域
作用域分类
1.全局作用域
- 在整个程序运行环境中都可见
- 全局作用域中的变量称为全局变量
2.局部作用域
- 在函数, 类等内部可见
- 局部作用域中的变量称为局部变量, 其使用范围不能超过其所在局部作用域
- 一般来讲外部作用域变量在函数内部可见, 可以使用
- 反过来, 函数内部的局部变量, 不能在函数外部看到
函数嵌套
函数嵌套:在一个函数中定义了另外一个函数
内部函数不能在外部直接使用, 会抛出NameError异常, 因为它在函数外部不可见
内部函数不过就是一个标识符, 就是一个函数内部定义的变量而已
嵌套结构的作用域: