当前位置:首页 > 科技  > 软件

这个被忽略的细节,是编写优秀 Python 代码的必经之路

来源: 责编: 时间:2024-04-26 08:51:57 119观看
导读某个操作在Python编写代码中是可选的,意味着它不是必须的。但要想写出好的Python代码,你就必须这样做。这就是 Python 中的类型提示。图片Python 中数据类型的问题Python是一种动态类型编程语言,变量的类型是在运行时分

某个操作在Python编写代码中是可选的,意味着它不是必须的。但要想写出好的Python代码,你就必须这样做。这就是 Python 中的类型提示。PSU28资讯网——每日最新资讯28at.com

图片图片PSU28资讯网——每日最新资讯28at.com

PSU28资讯网——每日最新资讯28at.com

Python 中数据类型的问题

Python是一种动态类型编程语言,变量的类型是在运行时分配的,无需在赋值之前定义特定类型。PSU28资讯网——每日最新资讯28at.com

a = 5

变量 a 被赋值为 5,在此之前,无需声明 a 存储整数,直接将 5 赋值给 a。PSU28资讯网——每日最新资讯28at.com

def add(a, b):  return a+bprint(add(4, 5))           # 9print(add(4.0, 5.0))       # 9.0print(add('hi', 'world'))  # hiworldprint(add([1,2], [3,4]))   # [1, 2, 3, 4]

add 接收两个变量 a 和 b 并返回 a+b。但 a 和 b 应该是什么数据类型呢?PSU28资讯网——每日最新资讯28at.com

  • 如果我们输入整数,就会得到一个整数
  • 如果传入浮点数,我们得到一个浮点数
  • 如果传入字符串,我们得到一个字符串
  • 如果我们传入列表,我们得到一个列表

Python并不在乎你传入a和b的参数。如果出现错误,你需要自己解决。尽管如此,类型提示可能会有所帮助。PSU28资讯网——每日最新资讯28at.com

类型提示介绍

在 Python 中,类型提示是可选的。如果不使用它们,Python 也能正常运行。然而,对于其他开发者来说,类型提示能让我们的代码更易读。PSU28资讯网——每日最新资讯28at.com

def add(a: int, b: int) -> int:  return a + b

在 a 和 b 后面加上 : int,在函数结尾 ) 后面加上 -> int 是类型提示,指示函数的参数和返回类型。PSU28资讯网——每日最新资讯28at.com

  • a 应该是整数
  • b 也应该是一个整数
  • 函数的返回值也应该是整数

类型提示并非强制数据类型,而是为了提示而存在的,这一点需要注意。PSU28资讯网——每日最新资讯28at.com

def add(a: int, b: int) -> int:  return a + bprint(add(4, 5))           # 9print(add(4.0, 5.0))       # 9.0print(add('hi', 'world'))  # hiworld

我们可以在 a 和 b 中传递浮点数或字符串,Python 不限制,允许代码运行。类型提示的主要目的是指导其他开发者阅读我们的代码时,明确数据类型应当为何。PSU28资讯网——每日最新资讯28at.com

类型提示的一些优势

  • 开发人员能够迅速确定函数或方法应使用的数据类型
  • 其他开发人员能够快速了解函数或方法应返回的数据类型
  • 减少了变量数据类型的猜测和确认的时间
  • 提高了代码的整体可读性

尽管类型提示是可选的,但它是编写优秀可读代码的必备条件。PSU28资讯网——每日最新资讯28at.com

虽然仅仅使用类型提示并不能让代码变得优秀PSU28资讯网——每日最新资讯28at.com

基础类型提示

a: int = 5# a should be an integer

变量类型提示PSU28资讯网——每日最新资讯28at.com

def avg(a:int, b:int) -> float:  return (a+b)/2

函数类型提示PSU28资讯网——每日最新资讯28at.com

  • a和 b应为整数
  • 函数应返回浮点数值

复杂类型的类型提示

但如果我们有一个整数列表呢?不用担心,内置的 typing 模块提供了一些有用的类型提示功能。PSU28资讯网——每日最新资讯28at.com

from typing import Listdef average(numbers: List[int]) -> float:  return sum(numbers)/len(numbers)

numbers 应是一个整数列表。PSU28资讯网——每日最新资讯28at.com

from typing import Dictdef count(d: Dict[str, int]) -> int:  # stuff

d 应该是一个字典,其中键是字符串,值是整数。PSU28资讯网——每日最新资讯28at.com

class Dog:  passfrom typing import Listdef magic(dogs: List[Dog]) -> int:  # stuff

dogs 应该是一个包含自定义 dog 对象的列表。PSU28资讯网——每日最新资讯28at.com

写在最后

掌握类型提示并不困难,但它可以提高代码的可读性。在编写优秀的Python代码时,使用类型提示是至关重要的,特别是在开发大型企业应用程序并需要与其他开发人员合作时。PSU28资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-85706-0.html这个被忽略的细节,是编写优秀 Python 代码的必经之路

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 一网打尽 Rust 语法

下一篇: SDK与API:概念、区别与应用

标签:
  • 热门焦点
  • 影音体验是真的强 简单聊聊iQOO Pad

    影音体验是真的强 简单聊聊iQOO Pad

    大公司的好处就是产品线丰富,非常细分化的东西也能给你做出来,例如早先我们看到了新的vivo Pad2,之后我们又在iQOO Neo8 Pro的发布会上看到了iQOO的首款平板产品iQOO Pad。虽
  • 2023年Q2用户偏好榜:12+256G版本成新主流

    2023年Q2用户偏好榜:12+256G版本成新主流

    3月份的性能榜、性价比榜和好评榜之后,就要轮到2023年的第二季度偏好榜了,上半年的新机潮已经过去,最明显的肯定就是大内存和存储的机型了,另外部分中端机也取消了屏幕塑料支架
  • 6月iOS设备好评榜:第一蝉联榜首近一年

    6月iOS设备好评榜:第一蝉联榜首近一年

    作为安兔兔各种榜单里变化最小的那个,2023年6月的iOS好评榜和上个月相比没有任何排名上的变化,仅仅是部分设备好评率的下降,长年累月的用户评价和逐渐退出市场的老款机器让这
  • 6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    没有新品发布,自然iOS设备性能榜的上榜设备就没有什么更替,仅仅只有跑分变化而产生的排名变动,毕竟苹果新品的发布节奏就是这样的,一年下来也就几个移动端新品,不会像安卓厂商,一
  • .NET 程序的 GDI 句柄泄露的再反思

    .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 讲故事上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋友反
  • 一文搞定Java NIO,以及各种奇葩流

    一文搞定Java NIO,以及各种奇葩流

    大家好,我是哪吒。很多朋友问我,如何才能学好IO流,对各种流的概念,云里雾里的,不求甚解。用到的时候,现百度,功能虽然实现了,但是为什么用这个?不知道。更别说效率问题了~下次再遇到,
  • 一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    作者:Hiu 来源:互联网品牌官01 擦边少女空降热搜,幕后推手曝光被网友誉为“纯欲天花板”的女网红井川里予,近期因为一组哥特风照片登上热搜,引发了一场互联网世界关于
  • 认真聊聊东方甄选:如何告别低垂的果实

    认真聊聊东方甄选:如何告别低垂的果实

    来源:山核桃作者:财经无忌爆火一年后,俞敏洪和他的东方甄选依旧是颇受外界关心的“网红”。7月5日至9日,为期5天的东方甄选“甘肃行”首次在自有App内直播,
  • 荣耀Magic4 至臻版 首创智慧隐私通话 强劲影音系统

    荣耀Magic4 至臻版 首创智慧隐私通话 强劲影音系统

    2022年第一季度临近尾声,在该季度内,许多品牌陆续发布自己的最新产品,让大家从全新的角度来了解当今的手机技术。手机是电子设备中,更新迭代十分迅速的一款产品,基
Top
Baidu
map