10分钟学会 Python 函数基本常识
副问题[/!--empirenews.page--]
一、函数基本 简朴地说,一个函数就是一组Python语句的组合,它们可以在措施中运行一次或多次运行。Python中的函数在其他说话中也叫做进程或子例程,那么这些被包装起来的语句通过一个函数名称来挪用。 有了函数,我们可以在很洪流平上镌汰复制及粘贴代码的次数了(信托许多人在刚开始时都有这样的体验)。我们可以把沟通的代码可以提炼出来做成一个函数,在必要的处所只必要挪用即可。那么,这样就进步了代码的复用率了,整体代码看起来较量简洁,没有那么痴肥了。 函数在Python中是最根基的措施布局,用来最大化地让我们的代码举办复用;与此同时,函数可以把一个错综伟大的体系支解为可打点的多个部门,简化编程、代码复用。 接下来我们看看什么是函数,及函数该怎样界说。有两种方法可以举办函数的界说,别离是def及lambda要害字。 1. 函数界说 先总结一下为什么要行使函数? 代码复用最大化及最小化冗余代码;进程解析(拆解)。把一个伟大的使命拆解为多个小使命。 函数界说的语法为:
按照上面界说,可以简朴地描写为:Python中的函数是具有0个或多个参数,具有多少行语句而且具有返回值(返回值无关紧要)的一个语句块(留意缩进)。 那么我们就界说一个较量简朴的函数,该函数没有参数,进入ipython交互式情形:
挪用(执行)该函数:
我们发明hello()函数并没有return语句,在Python中,假如没有显式的执行return语句,那么函数的返回值默以为None。 我们说过,界说函数有两种情势,其它一种情势是行使lambda来界说。行使lambda界说的函数是匿名函数,这个我们在后头的内容举办讲授,这里临时不表。 二、函数参数 界说函数的时辰,我们把参数的名字和位置确定下来,函数的接口界说就完成了。对付函数的挪用者来说,只必要知道怎样转达正确的参数,以及函数将返回什么样的值就够了,函数内部的伟大的逻辑被封装起来,挪用者无需相识。 Python的函数界说很是简朴,但机动度却很是大。除了正常界说的必选参数外,还可以行使默认参数、可变参数和要害字参数,使得函数界说出来的接口,不单能处理赏罚伟大的参数,还可以简化挪用者的代码。 1. 默认参数 默认参数使得API简捷,但不失机动性。当一个参数有默认值时,挪用时假如不转达此参数时,会行使默认值。
默认参数有一个坑,就长短默认参数要放到默认参数的前面(否则Python的表明器会报语法错误)。应承有多个默认参数,但默认参数必要放在参数列表的最后头。
此函数有题目。(函数中的形参是全局变量?lst在append函数中叫lst,但在全局浸染域中,我们不知道lst详细叫什么名字。) 修改之后的函数为:
凡是来说,当默认参数是可变的时辰,必要出格留意浸染域的题目,我们必要上述的能力(不行变的数据范例是值转达,可变的数据范例是引用转达。)。今朝可变的工具为list,dict,set,bytearray。 默认参数很有效,但行使不妥,也会掉坑里。默认参数有个最大的坑,演示如下: # 先界说一个函数,传入一个list,添加一个END再返回
当我们正常挪用时,功效好像不错:
当我们行使默认参数挪用时,一开始功效也是对的:
可是,再次挪用add_end()时,功效就差池了:
缘故起因表明如下: Python函数在界说的时辰,默认参数L的值就被计较出来了,即[],由于默认参数L也是一个变量,它指向工具[],每次挪用该函数,假如改变了L的内容,则下次挪用时,默认参数的内容就变了,不再是函数界说时的[]了。 以是,界说默认参数要紧记一点:默认参数必需指向稳固工具! (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |