Python函数相关
Posted Binb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python函数相关相关的知识,希望对你有一定的参考价值。
使用函数的目的: 可读性强,复用性强
# 函数签名: 函数签名值得是函数名,参数个数和类型以及返回值类型
定义函数:
def 函数名: 功能 return "返回值"
return 返回值的几种情况详解
没有返回值的情况:返回None
1.不写 return;
2.只写return;(结束一个函数的继续);
3.return None;不常用;
返回一个值:
1.可以返回任何数据类型;
2.只要返回就可以接受到;
3.如果在一个程序中有多个return,那么只执行第一个;
返回多个值:
1.多个返回值用多个变量接受:有多少返回值就用多少个变量接受;
2.多个返回值用一个变量接受:得到的是一个元祖;
函数参数的几种情况详解
没有参数:
定义函数和调用函数时括号里都不写内容;
有一个参数:
传什么就是什么;
有多个参数:
1.站在实参的角度上:
1.按照位置传参;
2.按照关键字传参;
3.混着使用(必须先按着位置传参,在按照关键字传参;不能给一个变量传多个值);
2.站在形参的角度上:
1.位置参数:必须传,且有几个参数传几个值;
2.默认参数:可以不传,如果不传就是驶入默认的参数,如果传入就使用传入的参数;在形参中 --- ‘形参‘=‘默认值‘;
***默认参数的陷阱:如果默认参数的值是一个可变数据类型,那么每一次调用函数的时候,如果不传值就公用这个数据类型的资源;默认参数可变数据类型只要不重新赋值,list指向的地址永远不变,切记切记!
***顺序:必须先定义位置参数,*args,后再定义默认参数,再写**kwargs;
动态参数解释
可以接受任意个参数
1.*args;# *args(args可以任意变换 习惯使用args) # 接受的是按照位置传参的值,组织成一个元祖;## 站在实参的角度上,给一个元祖加上*,就是将这个元祖按照顺序打散;
2.**kwargs;# **kwargs(kwargs可以任意变换 习惯使用kwargs) # 接受的是按照关键字传参的值,组织成一个字典;## 站在实参的角度上,给一个字典加上**,就是将这个字典按照顺序打散;
函数的进阶
解包
如果列表中有3个元素,那么刚好可以分配给3个变量。除了列表对象可以解包之外,任何可迭代对象都支持解包,可迭代对象包括元组、字典、集合、字符串等;
以上是关于Python函数相关的主要内容,如果未能解决你的问题,请参考以下文章