python 函数
构成:由若干语句组成的语句块、函数名称、参数列表构成,他是组织代码的最小单位。
作用:1、结构化编程对代码的最基本的封装,一般按照功能组织一段代码
2、复用
3、代码更加简洁美观,可读易懂
def语句定义函数:
def 函数名(参数列表)
函数体(代码块)
return 返回值
可以没有return语句,隐式会返回None值
函数调用:函数名(),括号内写参数
参数:
定义中的参数为形参,只是一种符号的表达。调用中的参数为实参,是真正的值。定义要在调用前。
函数参数:分为 位置参数、关键字参数、可变参数(可变位置参数 *,可变关键字参数 **)、 keyword-only参数(可变位置参数之后)。
位置可变参数收集实参形成一个tuple,关键字可变参数收集实参形成一个dict
参数默认值:可以在未传入足够的实参的时候,对没有给定的参数赋值为默认值
位置参数要在关键字参数之前传入,可变参数要放在最后,keyword-only在位置可变参数后。
参数结构:
给函数提供实参时,可以在集合类型前使用*或者**,把集合类型的结构解开,提取出所有元素作为函数的实参。提取出的元素数目和类型要和参数的要求匹配。
函数的返回值:
用return语句返回 返回值,如果没有return,默认返回None
return语句并不一定是函数语句块的最后一条语句
一个函数可以存在多个return语句,但只会执行一条
如果函数执行了return语句,函数就会返回,之后的语句就不会被执行
函数不能同时返回多个值
函数嵌套:
在一个函数中定义了另外一个函数。
作用域:
一个表示符的可见范围,就是表示符的作用域,一般常说的是变量的作用域。
全局作用域:在整个程序运行环境中可见
局部作用域:在函数、类等内部可见。局部变量使用范围不能超过其所在的局部作用域。
外层变量作用域在内层作用域可见,相反不可见。
全局变量global:使用global关键字的变量,将内部作用域的变量声明为全局作用域中定义的变量。
闭包:出现在嵌套函数中,指的是内层函数引用到了外层函数的自由变量(自由变量:本层没有定义定 义在外层)但外层不能是全局,形成闭包。使用nonlocal关键字。
默认值的作用域:用(标识符.__defauits__)查看默认值。默认值本身不会变,但是默认值引用一个可变 类型(如list),引用类型的元素可以变动。
可以使用None作为默认参数,通过值的判断就可以灵活的选择创建或者修改传入对象 。
例子:def foo(x=None):
if x is None:
x=[]
函数的销毁:
全局函数销毁:重新定义同名函数、del 语句删除、程序结束时
局部函数销毁:重新在上一级作用域定义同名函数、del语句删除、上级作用域销毁时
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87808