Python72:核心语法-类型注解-函数的类型注解

函数-类型注解

为函数添加类型注解,其实主要就是为函数的参数和返回值添加类型注解,具体语法如下:

在函数调用过程当中,类型推断依然是生效的,但是前提是要为参数有默认值赋值,它才会推断出来,如果没有默认值,它就推断不出来了,这个时候我们就可以手动地去给它加上类型注解。

python 复制代码
# 函数类型注解
def circle_area_len(r: float) -> tuple[float, float]:
    return round(3.14 * r * r, 1), round(2 * 3.14 * r, 1)

al = circle_area_len(8.5)
print(al) # (226.9, 53.4)
python 复制代码
def calc_order_cost(*args:tuple[str, float, int], coupon=0, score=0, express=0.0):
# def calc_order_cost(*args:tuple[str, float, int], coupon:int=0, score:int=0, express:flat=0.0) -> float:  #这行更完整
    """
    根据传入的一批商品信息(商品名、价格、数量)、优惠(优惠券、积分抵扣)、运费信息计算订单的总金额
    :param args: 商品信息(商品名、价格、数量) # 可以用列表或元组 ---->如:("鼠标", 188, 2) ("键盘", 388, 1)
    :param coupon: 优惠券
    :param score: 积分
    :param express: 运费
    :return: 订单的总金额
    """
    # 订单的总金额 = 商品总金额 - 优惠券 - 积分抵扣 + 运费
    # 1. 计算商品总金额
    total_price = [goods[1]*goods[2] for goods in args]
    total_cost = sum(total_price)

    # 2. 扣减优惠券
    if total_cost >= 5000 and coupon <= total_cost:
        total_cost -= coupon

    # 3. 扣减积分抵扣
    if total_cost >= 5000 and score // 100 <= total_cost:
        total_cost -= score // 100

    # 4. 添加运费
    total_cost += express
    return total_cost

# 测试
total = calc_order_cost(("鼠标", 88.5, 2), ("键盘", 388, 1), ("手机", 6999, 1))
print(total) # 7564.0

小结:

  1. 函数中类型注解的语法?

强调一点:关于函数的类型注解,你可以加,也可以不加,不加也不会影响函数的正常运行,只不过,有一些错误可能到运行的时候才会发现,代码的可维护性不高,如果加了类型注解,我们在编写代码的时候,错误可能马上就会暴露出来,从而降低代码出错的概率。

对于需要团队协作开发和长期维护的项目,推荐使用类型注解。

但是如果基于Python的解释器,它可以推断出这个变量的类型、参数的类型,那这个类型注解加不加都是可以的;如果推断不出来的情况下,建议加上类型注解,让代码更便于后期的维护。


**声明:**本篇学习笔记参考黑马程序员相关课程,部分素材来源于网络公开资料及本人补充;文中为个人整理复盘,仅供学习交流使用。

相关推荐
liudachu2 小时前
Agent 开发常见名词说明与类比
python·langchain
devilnumber2 小时前
Lambda 表达式(Java)优缺点清晰分析
java·开发语言·python
大泽九章3 小时前
XSS入门:存储型、反射型、DOM型,用Flask全复现
python·网络安全·flask
class心平气和3 小时前
ADB 工具函数 Python 使用教程
开发语言·python·adb
小小张说故事3 小时前
Python 里 is 和 == 到底差在哪?拆开小整数池、字符串驻留与 0ns 身份比较
python
滴啦嘟啦哒3 小时前
【具身笔记】【Piper+PI0.5】三、探究失败原因
笔记·python·vla·具身
W_326003 小时前
Python 图像处理第二十八章|OpenCV 形态学操作进阶:腐蚀、膨胀、开运算、闭运算、梯度、顶帽黑帽
图像处理·人工智能·python·opencv·计算机视觉
BD_Marathon4 小时前
【Python】标准多态和鸭子多态
python
用户8356290780514 小时前
Python 操作 Excel:创建数组公式与 R1C1 公式
后端·python