012-python函数式编程-函数参数

函数参数

python中的函数参数很灵活,具体体现在传递参数有多种形式。

使用关键字参数调用函数

为了提高函数调用的可读性,在函数调用时可以使用关键字参数调用

# /usr/bin/python
# -*- coding: utf-8 -*-

# descrition:create funcation

def print_area(width, height):
	area =  width * height
    print("{0} * {1} 长方形的面积:{2}".format(width, height, area ))

print_area(10.0, 20.0)
print_area(width=10.0, height=20.0)
print_area(height=20.0, width=10.0)
# print_area(width=10.0, 20.0)  # 报错
print_area(20.0, height=10.0)

调用者能够清晰的看出来传的参数的含义,关键字调用时,参数顺序可以和定义的顺序不同。一旦其中的一个采用了关键字,那么其后的参数都必须采用关键字形式传递。

参数默认值

在定义参数的时候可以为参数设置一个默认值,调用时可以忽略该参数。

def make_coffee(name="卡布奇洛"):
	return "制作一杯{0}咖啡".format(name)
	
print(make_coffee())
print(make_coffee("拿铁"))

可变参数

python中函数的参数的个数可以变化,它可以接受不确定数量的参数,这种参数称为可变参数。python中可变参数有两种,即参数前加 * 或 ** 形式,
* 可变参数在函数中被组装成为一个元组
**可变参数在函数中被组装成为一个字典

* 可变参数

def sum(* numbers, multiple = 1):
    total = 0.0
    for number in numbers:
        total += number
    return total * multiple

print(sum(10, 20))
print(sum(10, 20, multiple = 2))

double_tuple = (10.0, 30.0)
print(sum(1.0, 2.0, *double_tuple))

计算所有参数之和,*numbers 是可变参数。在函数体中参数被组装成一个元组,可以使用 for 循环遍历numbers 元组。
另外,double_tuple 也可以是列表对象。
* 可变参数不是最后一个参数时,后面的参数必须采用关键字参数形式传递。

** 可变参数

def show_info(sep = ':', **info):
    print('---info---')
    for key, value in info.items():
        print('{0} {1} {2}'.format(key, sep, value))

show_info('->', name = 'tony', age = 18, sex = True )
show_info(name = 'tony', age = 18, sex = True , sep = '-')
s_dict = {'name':'T', 'age':18}
show_info(**s_dict, sex = True , sep = '=')

sep为信息的分隔符号,默认值是冒号, **info 是可变参数,在函数体中参数info被组装成一个字典。
** 可变参数必须放在正规参数之后,例如def show_info(sep = ':', **info):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值