网站首页 > 基础教程 正文
在调用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}')
默认参数
调用函数时,如果没有传递参数,则会使用默认参数。
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}')
不定长参数
在特定情况下,可能需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数。和以上几种参数相比,不定长参数在声明时不会指定特定名称。比较常见的例子是,计算不确定数值的最大值,数据库连接时除了必要参数以外的可选参数等。
在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=['黯然销魂掌','九阴真经','玉女素心剑法','玄铁剑法','蛤蟆功','打狗棒法'])
- 上一篇: Python 函数中的 4 种参数类型
- 下一篇: Python中的函数参数类型
猜你喜欢
- 2024-11-27 Python中的函数参数类型
- 2024-11-27 彻底掌握Python函数的5种参数
- 2024-11-27 Python 函数中的 4 种参数类型
- 2024-11-27 python函数之二:参数的四种类型
- 2024-11-27 Python函数的主要参数类型
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)