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

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

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

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

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

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

Python 中数据类型的问题

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

a = 5

变量 a 被赋值为 5,在此之前,无需声明 a 存储整数,直接将 5 赋值给 a。QON28资讯网——每日最新资讯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 应该是什么数据类型呢?QON28资讯网——每日最新资讯28at.com

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

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

类型提示介绍

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

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

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

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

类型提示并非强制数据类型,而是为了提示而存在的,这一点需要注意。QON28资讯网——每日最新资讯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 不限制,允许代码运行。类型提示的主要目的是指导其他开发者阅读我们的代码时,明确数据类型应当为何。QON28资讯网——每日最新资讯28at.com

类型提示的一些优势

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

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

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

基础类型提示

a: int = 5# a should be an integer

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

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

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

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

复杂类型的类型提示

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

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

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

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

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

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

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

写在最后

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

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

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

上一篇: 一网打尽 Rust 语法

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

标签:
  • 热门焦点
  • 小米官宣:2023年上半年出货量中国第一!

    今日早间,小米电视官方微博带来消息,称2023年小米电视上半年出货量达到了中国第一,同时还表示小米电视的巨屏风暴即将开始。“公布一个好消息2023年#小米电视上半年出货量中国
  • 石头自清洁扫拖机器人G10S评测:多年黑科技集大成之作 懒人终极福音

    科技圈经常能看到一个词叫“缝合怪”,用来形容那些把好多功能或者外观结合在一起的产品,通常这样的词是贬义词,但如果真的是产品缝合的好、缝合的实用的话,那它就成了中性词,今
  • 掘力计划第 20 期:Flutter 混合开发的混乱之治

    在掘力计划系列活动第20场,《Flutter 开发实战详解》作者,掘金优秀作者,Github GSY 系列目负责人恋猫的小郭分享了Flutter 混合开发的混乱之治。Flutter 基于自研的 Skia 引擎
  • CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • 微信语音大揭秘:为什么禁止转发?

    大家好,我是你们的小米。今天,我要和大家聊一个有趣的话题:为什么微信语音不可以转发?这是一个我们经常在日常使用中遇到的问题,也是一个让很多人好奇的问题。让我们一起来揭开这
  • 在线图片编辑器,支持PSD解析、AI抠图等

    自从我上次分享一个人开发仿造稿定设计的图片编辑器到现在,不知不觉已过去一年时间了,期间我经历了裁员失业、面试找工作碰壁,寒冬下一直没有很好地履行计划.....这些就放在日
  • 19个 JavaScript 单行代码技巧,让你看起来像个专业人士

    今天这篇文章跟大家分享18个JS单行代码,你只需花几分钟时间,即可帮助您了解一些您可能不知道的 JS 知识,如果您已经知道了,就当作复习一下,古人云,温故而知新嘛。现在,我们就开始今
  • 小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    8月2日消息,今日小米科技创始人雷军在其微博上发布消息称,小米公益基金会宣布捐赠2500万元驰援北京、河北暴雨救灾。携手抗灾,京冀安康!以下为公告原文
  • 北京:科技教育体验基地开始登记

      北京“科技馆之城”科技教育体验基地登记和认证工作日前启动。首批北京科技教育体验基地拟于2023年全国科普日期间挂牌,后续还将开展常态化登记。  北京科技教育体验基
Top