目录

* 一、定义函数 <https://www.cnblogs.com/nickchen121/p/11070432.html#一定义函数>
* 二、函数定义的三种方式 <https://www.cnblogs.com/nickchen121/p/11070432.html#二函数定义的三种方式>
* 三、调用函数 <https://www.cnblogs.com/nickchen121/p/11070432.html#三调用函数>
* 四、函数的返回值 <https://www.cnblogs.com/nickchen121/p/11070432.html#四函数的返回值>
* 五、函数的参数 <https://www.cnblogs.com/nickchen121/p/11070432.html#五函数的参数>
* 5.1 形参 <https://www.cnblogs.com/nickchen121/p/11070432.html#形参>
* 5.2 实参 <https://www.cnblogs.com/nickchen121/p/11070432.html#实参>
* 六、可变长参数 <https://www.cnblogs.com/nickchen121/p/11070432.html#六可变长参数>
* 七、函数对象 <https://www.cnblogs.com/nickchen121/p/11070432.html#七函数对象>
* 八、函数的嵌套 <https://www.cnblogs.com/nickchen121/p/11070432.html#八函数的嵌套>
* 九、名称空间与作用域 <https://www.cnblogs.com/nickchen121/p/11070432.html#九名称空间与作用域>
一、定义函数

只检测语法,不执行代码

二、函数定义的三种方式

* 有参函数
* 无参函数
* 空函数
三、调用函数
def f1(): return 123 f = f1() f1()*2 lis = [f1(),2]
四、函数的返回值

return返回返回值,函数遇到return会终止,return可以返回任意数据类型的值,同时也可以返回多个值

函数只有在调用阶段才会接收返回值

五、函数的参数

5.1 形参

接收实参,具有描述意义,没有具体值

5.2 实参

具有具体的值,传参给形参

* 位置形参:从左到右一个一个接收位置实参
* 位置实参:从左到右一个一个传给形参
* 关键字实参:根据形参名传参
* 默认形参:给形参一个默认值,如果实参不对该形参传值,则使用默认值;反之,使用实参传的值
* 关键字实参必须得在位置实参后面,默认形参也必须在位置形参后面
* 一个形参只能接收一个值 def f1(x,y): pass f1(1,x=2) # 报错
六、可变长参数

* *形参:接收多余的位置实参,以元组的方式存储
* *实参:把元组打散成一个个位置实参,然后传给形参(不推荐使用,只做了解)
* **形参:接收多余的关键字实参,以字典的方式存储
* **实参:把字典打散称一个个关键字实参,然后传给形参(不推荐使用,只做了解)
* 牢记: def f1(*args,**kwargs): pass # f1可以接收所有的参数 f1(1,1,2,3,3,4,5,x=2,y=5,a=8)
七、函数对象
def f1(): pass
* 引用f=f1
* 作为函数返回值return f1
* 作为函数参数传入f2(f1)
* 容器元素lis=[f1]
八、函数的嵌套
def f1(): def f2(): pass f2() # 报错
九、名称空间与作用域

* 内置名称空间:存放内置的名字,如len/eval/enumerate/bytes/max/min/sorted/map/filter....
* 全局名称空间:除了内置与局部,其他的名字都存放在全局名称空间内
* 局部名称空间:函数内部的名字都是局部名称空间,不同函数内部的名字互不干涉
* 查找顺序:从当前开始往上寻找,如果当前是局部名称空间,查找顺序为:局部--》全局--》内置
* 执行顺序:先内置(Python解释器启动的时候才会生成)--》全局(文件执行的时候才会生成)--》局部(函数调用的时候才会生成)
作用域:全局名称空间和局部名称空间中可能会存在名字相同的变量,但是这两个变量互不影响。
只针对不可变数据类型,对于可变数据类型除外,尽量不要使用可变类型的这个特性,如果真的使用,可以不同的函数定义不同的变量出来。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信