Python基础之:函数

Python基础之:函数,第1张

概述简介函数是结构化编程的基础,也是代码复用的基石。Python中通过def来自定义函数。本文将会深入探索Python中函数的秘密。内置函数除了用户的自定义函数之外,Python内置了一些非常有用的函数:自定义函数Python中使用def来定义函数,并使用return来返回特定的值。看一个简单的函数的例子:把 简介

函数是结构化编程的基础,也是代码复用的基石。Python中通过def来自定义函数。本文将会深入探索Python中函数的秘密。

内置函数

除了用户的自定义函数之外,Python内置了一些非常有用的函数:

自定义函数

Python中使用def来定义函数,并使用return来返回特定的值。

看一个简单的函数的例子:

把我们之前讲的斐波拉赫数列的例子重新用函数来定义,可以这样写:

函数的内容需要使用空格或者tab来进行缩进。

参数的默认值

在Python中,我们可以给参数设置默认值,这样如果在函数调用的过程中没有传递参数的时候,就会使用默认值作为参数。

在我们之前定义的函数my_function中,我们可以给z设置一个默认值:

这样我们在调用my_function可以只用传递两个参数,最后的z可以使用默认的参数值。

注意,默认值只会执行一次,如果你传入的参数是可变对象(列表,字典和类实例)的话,我们需要注意这个问题:

如果不想在后面的调用中共享默认值,那么可以把默认值的赋值放到函数体内部:

关键字参数

我们可以使用key=value的方式对函数进行调用。

还是前面的函数:

我们可以这样调用:

但是不能这样用:

关键字的参数必须要放在非关键词参数的后面。也不能对参数进行多次赋值:

通过上面的讨论我们可以看出,Python函数中的参数有两种,一种是带默认值的参数,一种是不带默认值的参数。

特殊参数

函数可以按位置传参,可以按照关键词传参,也可以混合传参。

在某些情况下,我们可能需要限制传参的类型,比如只接收按位置传递,只接收按关键词传递,或者只接受混合传递。

看下特殊参数的定义:

上面定义了4种传参方式的函数。

第一个函数就是标准形式,可以按位置传递,也可以按关键词传递。

第二个函数只允许按照位置传递。

第三个函数只允许按照关键词来传递。

第四个函数是混合模式。

参数解包

有时候我们需要将列表或者字典的值转换为函数的参数。那么就需要用到参数解包的功能。

* *** 作符 可以用来解包列表和元组。

** *** 作符 可以用来解包字典。

Lambda

熟悉java的朋友可能知道,在JDK8中,Java引入了Lambda表达式。同样的Python中也有Lambda。

你可以将Lambda看做是匿名函数。可以在任何需要函数的地方使用Lambda表达式。

看一个Lambda的例子:

还可以将lambda的返回值作为参数:

函数标注

之前我们讨论的是简单的自定义函数形式,我们并不知道函数的参数类型和返回值类型,其实函数可以写得更加详细一些,这就要用到函数标注了。

所谓函数标注就是用户自定义函数中的类型的可选元数据信息。

函数标注是以字典的形式存放在 __annotations__ 属性中的。我们在参数的名称后面加上冒号,后面跟一个表达式,那么这个表达式会被求值为标注的值。对于返回值来说,返回值标注的定义是加上一个组合符号 ->,后面跟一个表达式,该标注位于形参列表和表示 def 语句结束的冒号之间。

举个例子:

 

 

 

 

 

 

 

 

总结

以上是内存溢出为你收集整理的Python基础之:函数全部内容,希望文章能够帮你解决Python基础之:函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1186579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存