python 不定参数_二十二、Python函数参数类型(位置、关键字、默认、不定长参数)...

828ed5616676e7f8cf499293fe4ac4d8.png

调用函数时可使用的参数类型

在调用Python函数时可使用的参数类型主要有以下几种:

  • 必要参数(位置参数)
  • 关键字参数
  • 默认参数
  • 不定长参数

必要参数(位置参数)


在Python中,必要参数必须以正确的顺序传入函数。调用的时候必须和定义函数声明时的一样

def rectangle_area(width, height):    """    计算长方形面积    """    return width*height# 调用ra1 = rectangle_area(10,5)print(f'长方形长为10,宽为5的面积是:{ra1}')# 如果您只传入一个参数# ra2 = rectangle_area(10) #报错:rectangle_area() missing 1 required positional argument: 'height'

关键字参数

在Python中,关键字参数和函数调用关系非常紧密,函数调用时使用关键字参数来确定传入的参数,因此,调用函数时使用关键字参数,参数的顺序与声明可以不一致,因为Python解释器可以根据关键字参数名匹配参数值。

def trapezoid_area(topline, baseline, height):    '''    计算梯形面积    '''    area = (topline+baseline)*height/2    return area# 通过必要参数(位置参数时,形参与实参必须一一对应)t1 = trapezoid_area(10,20,10)print(f'上底为10,下底为20, 高为10的梯形面积为:{t1}')# 通过关键字来调用t2 = trapezoid_area(topline=10, baseline=20, height=10)print(f'上底为10,下底为20, 高为10的梯形面积为:{t2}')# 顺序可以不一致t3 = trapezoid_area(height=10,topline=10, baseline=20)print(f'上底为10,下底为20, 高为10的梯形面积为:{t3}')
4f357182603eba292361bec09aceaa9e.png

关键字参数的顺序可以任意

默认参数

调用函数时,如果没有传递参数,则会使用默认参数。

def produce_product(id, name, product_type='生活品', price=10, quantity=10):    '''    封装product成列表返回    '''    product = []    product.append(id)    product.append(name)    product.append(product_type)    product.append(price)    product.append(quantity)    return product# 调用p1 = produce_product(1, '洗衣粉', '数码', 2999, 5)print(f'p1: {p1}')# 默认参数是使用定义函数时的默认值p2 = produce_product(2, '洗衣粉')print(f'p2: {p2}')
b6168115cfd6c1b89810f86f5073a0db.png

默认参数在调用时可以不写

不定长参数

在特定情况下,可能需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数。和以上几种参数相比,不定长参数在声明时不会指定特定名称。比较常见的例子是,计算不确定数值的最大值,数据库连接时除了必要参数以外的可选参数等。

在Python中,处理不定长参数有两种:

  • 加了*的参数会以元组的形式导入,存放所有未命名的变量参数
  • 加了**的参数会以字典的形式导入
def print_star_info(name,gender='男', *args, **kwargs):    '''    打印明星信息    '''    print(name, gender, args, kwargs)# 调用print_star_info('陈老师','男','白芷','欣彤','阿叫',hobby='CB', skill='拍照')print_star_info('杨过','男','郭襄','郭芙','李莫愁', weapon='玄铁重剑', car='雕哥',kongfu=['黯然销魂掌','九阴真经','玉女素心剑法','玄铁剑法','蛤蟆功','打狗棒法'])
5cde07098b0088e3e71cd4ffb7cb0ba7.png

可变参数

5bcb53b09fd9a9281819c9c30e47f7c9.png

下节预告:变量的作用域

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值