1.必选参数与默认参数
我们在调用一个自定义函数时,必须给函数中的必选参数赋值,否则程序将会报错,并提醒用户“缺少一些必选的位置参数”。在Python中,可以在声明函数的时候,预先为参数设置一个默认值。当调用函数时,如果某个参数具有默认值,则可以不向这个函数传递参数,这时,函数将使用事先声明默认的参数。
下面的代码中,我们定义了一个名为calculate_profit的函数,该函数的目的是计算公司的净利润。它接受两个必选参数revenue(营业收入)和expenses(总支出),以及一个默认参数tax_rate(税率,默认为0.2)。
代码首先通过营业收入和总支出相减得到利润,在通过与税率相乘得到税款,最后使用利润减去税款得到公司的净利润。代码输出结果是公司的净利润为320000。
2.可变参数
如果我们有很多的参数需要转入或者传入函数的参数量是不定的,可以使用可变参数。可变参数应该位于函数参数列表的最后,否则会吞噬掉这些参数。在可变参数之前都有*号修饰。下面我们定义了一个函数calculate_total_sales,它接受可变数量的参数*sales,这个参数表示多个商品的销售额。函数的目的是计算多个商品的总销售额。
上面代码的输出结果是“多个商品的总销售额为:19500。”
3.关键字参数
关键字参数既可以接受多个实际参数,又可以把多个实际参数指定给各自的实际参数名,而且这种参数会把带参数名的参数值组装到一个字典中,键就是具体的实际参数名,值就是传入的参数值。我们可以使用关键字参数传入任意个含参数名的参数,这些参数名在函数定义时不用指定,在函数内部,这些参数会被自动分装成字典类型,我们使用**修饰关键词参数。
例如,某社交软件注册界面,昵称和性别为必填项,其他信息为选填项,我们并不知道用户会选填哪些信息,也不知道选填信息的数量,因此我们要把选填项设置为关键字参数,进而使用户会填的选填项为不定量的选填项,而且使用户选填的信息与选填项对应起来。
上面代码的输出结果如下所示。