网页设计建设网站模板,seo教程视频论坛,wordpress带会员中心的主题,装饰设计素描的秩序化构成包括全文共2201字#xff0c;预计学习时长6分钟图源#xff1a;unsplashPython 3上线已有一段时间#xff0c;大多数开发人员(特别是那些首次编程的人)已经在使用它了。不过#xff0c;你确定已经对Python 3研究透彻了吗#xff1f;事实上#xff0c;其中还有许多新功能对大多…全文共2201字预计学习时长6分钟图源unsplashPython 3上线已有一段时间大多数开发人员(特别是那些首次编程的人)已经在使用它了。不过你确定已经对Python 3研究透彻了吗事实上其中还有许多新功能对大多数人来说仍处于未知状态。本文就将讨论Python 3中三个鲜为人知但非常有用的功能我在其他语言中接触到并爱上了这些功能它们的加入使得使Python 3体验更佳。枚举枚举是在Java和Swift中常使用到的功能我把它扩展到Python中。在Python中创建枚举非常简单在Python 3之前的版本中也可使用(尽管功能更受限)from enum importEnumclassState(Enum):AIR0LAND1SEA2myState State.AIR# Prints 0print(myState.value)# Prints AIRprint(myState.name)在上述代码中可以看到通过构造一个类并使其成为枚举的子类便可以轻松构造枚举。在这里只需在下面的行中定义每个状态。就我而言我有AIR、LAND、SEA。Python3的新功能是运行.value和.name。这能获得与状态相关联的整数值或与之相关联的字符串。在上面的代码中输入State.LAND.name 返回LAND因此功能不仅仅是一个整数枚举。当需要描述性常量时代码中的枚举类型十分有用。例如与其检查状态是0还是1不如检查它是否是State.MOVING或State.STATIONARY状态. 。常量可能会改变如果有人在看你的代码MOVING比0更有意义代码的可读性也会大大提高。图源unsplash格式在Python 3.6中添加的fstring是格式化文本的一种很好的方式。它们的可读性强而且不容易出错。fstring比Python以前使用的格式更易读。以下是使用格式的示例name Brettblog_title Medium# Hi, my name isBrett and I am writing on my Medium blog.a Hi, myname is {} and I am writing on my {} blog..format(name,blog_title)如上所示在字符串中打入括号然后按顺序列出每个变量的名称。相同代码任务很多但fstring极大地增加了代码的可读性尤其是类似于用Swift格式化字符串。name Brettblog_title Medium# Hi, my name isBrett and I am writing on my Medium blog.a fHi, myname is {name} and I am writing on my {blog_title} blog.为了完成这个更简洁的字符串只需在引号前面加上字母f然后将变量或数据直接放入括号中而不是使用空括号。由于变量本身是写在括号内的所以不必计算格式中写入的项的数量来确定变量的位置变量就在应在的位置。相比于字符串连接或格式化字符串fstring可以生成更可读、更可靠的代码。数据类数据类可能要比上述所谈更为晦涩难懂所以我将简要地解释一下。我在Kotlin中逐渐喜欢上了数据类因此很想在Python中使用它们。数据类实际上是一个类其唯一目的是保存数据的类。类将具有可以访问和写入的变量但上面没有额外的逻辑。假设你有一个程序在不同的类之间传递一个字符串和一个数字数组。使用pass(strarr)这样的方法也可行最好是创建一个只包含字符串作为字段和数组的数据类。通过创建一个数据类你所做的将更加清晰单元测试也将更加容易。图源unsplash下面这个示例将说明如何创建一个表示三维向量的简单数据类但这可以很容易地扩展为表示不同数据的任意组合from dataclasses import dataclass# DefinedataclassdataclassclassVector3D:x: inty: intz: int# Create a vectoru Vector3D(1,1,-1)# Outputs: Vector3D(x1,y1, z-1)print(u)在这里你可以看到数据类的定义与声明普通类非常相似只是我们先用了dataclass然后每个字段的名称都是name:type。虽然我们创建的Vector3D功能有限但是数据类的目的只是提高效率并减少代码中的错误传递Vector3D比传递int变量要好得多。以上三点就是我的新发现。你在Python 3中尝试过哪些鲜为人知的功能呐留言点赞关注我们一起分享AI学习与发展的干货如转载请后台留言遵守转载规范