1、首先是最普通的函数定义,使用def关键字表示开始定义函数,add就是函数名,括号里的就是参数,这里用x接收一个参数,进行运算后返回回去.
2、现在我们要为函数增加一些功能,这个时候原来的函数就没有了,如果想保留原来的函数功能要怎么办呢?在Java中,我们可以通过重载实现,相同的函数名参数不同,就会调用不同的代码段,
3、python没有重载,但是它有Ja箪滹埘麽va所没有的默认参数,定义代码的时候,你就可以为参数指定默认值,指定了默认值的参数,就可以在调用函数的时候省俟痂檗盈略,这样就可以根据传入参数的不同而执行不同的功能,让函数设计可以变得相当优雅.
4、如果我们有很多默认参数,但调用的时候只想传入其中几个,就可以指定参数名称传入值,不用像java一样写一堆重载函数,或者为了调用多参数函数而写上一长串参数,
5、默认参数有一点需要注意的是,如果你的默认值是一个可变对象,你需要在函数体内部定义它,这样才不会因为默认参数被改变而对下次函数调用产生影响.
6、除了默认参数以外,python还提供可变参数,可变参数用*号表示,传入的元素会被打包成一个tuple
7、如果你希望参数被打包成一个dict,这样你就可以传入键值对了,你就需要用到关键字参数,关键字参数用 ** 表示,
8、参数的定义顺序有一定要求:普通参数、可变参数、默认参数、关键字参数。1会被普通参数吸收,之后的1,2,3会被可变参数打包成tuple,之后的指定型参数会被默认参数吸收掉对应的部分,剩下的会被关键字参数打包为dict