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函数相关的主要内容,如果未能解决你的问题,请参考以下文章

python使用上下文对代码片段进行计时,非装饰器

python 元组有用的函数,方法和片段。

Python代码阅读(第26篇):将列表映射成字典

几个关于js数组方法reduce的经典片段

实用的 PyYAML 使用技巧

VSCode自定义代码片段——声明函数