一些可以被经常使用的代码,可以提取出来放在函数中。
Python使用def 来定义一个函数,使用return来返回结果。
python 中没有“重载”这样的概念,相同名字的函数,后面的会覆盖前面的。
Python 支持默认参数,函数参数可以支持默认值。
Python解包语法(unpack)语法,函数返回多个值。
假如我不想关注x,只想关注y也是可以的,可以使用_做占位符,
_,y=GetPoint()
函数也是一个对象,一个函数和一个数字,字符串一样,都可以定义别名来引用它。
下面我们来谈谈函数的参数
1.函数定义时,可以在()中填入这个函数都需要接受哪些参数,注意,此处不需要指定参数类型。因为,Python是动态类型语言,所以在你写下代码时,解释器并不知道参数的类型是什么,而是在运行时(调用函数时)函数才知道了类型。但是注意,只有传入的参数,能够支持函数体中的各种操作就可以了,否则就是运行时报错。
2.定义函数时,支持给函数指定默认的参数,这样如果调用函数时不显示指定参数,就会使用默认参数作为参数值。
3.默认参数是非常有用的,尤其是一些库的接口,可能需要传入很多参数,那么默认参数就可以帮我们减轻使用负担。
4.对于多个默认参数的函数,可以按照给定的顺序给函数的某几个参数进行传参。如下
下面问题来了,如果我想指定x=100,z=100怎么办?
我们可以用关键字参数
当我们有多个默认参数,同时又只想传其中的某几个的时候,还可以使用关键字参数的方式进行传参。
例如:内建函数sorted(用来给序列进行排序),函数的原型为:
sorted(iterable [,cmp[,key[,reverse]]])
函数有四个参数,第一个参数表示传入一个可以迭代的对象(比如列表,字符串,字典等),其余四个参数都有可以默认传的参,可以不传。
执行结果
对于这几个默认参数,可以通过现实的指定关键字,来说明接下来这个参数是传给哪个参数。
sorted可以保持自定制排序规则。
例子1:逆序排列
例二:按照元素的绝对值排序
例子3:按照字符串的长度排序
总结一下,
和其他编程语言不同,Python的函数形参,变量名字可不是随意书写的,尤其是这是一个默认参数的时候,形参名可以随时被领出来,作为关键字参数协助函数调用时传入实参。