知乎高赞回答:有什么相见恨晚的Python技巧
你可以通过这个链接了解更多关于列表推导式的用法。地址:https://www.learnpython.org/en/List_Comprehensions ![]() MAP Python有许多非常有用的内置函数。其中一个就是map()——特别是和lambda函数相结合的时候。 ![]() 在这个例子中,map()对x中的每一个元素都应用了一个简单的lambda函数。它会返回一个map对象,这个对象可以被转化成可迭代对象,如列表或者元组。 NEWSPAPER3K newspaper3k,如果你还没有见过它,那么你可能会被这个Python newspaper模块所惊艳到。 它可以让你检索到一系列国际领先出版物中的新闻和相关的元数据。你可以检索图片、文本和作者名。它甚至有一些内置的自然语言处理功能。所以,如果你正在考虑使用BeautifulSoup 或其他自制的爬虫库来应用于你的下一个项目。那么,省省时间和精力吧,你其实只需要$ pip install newspaper3k。 OPERATOR OVERLOADING(操作符重载) Python支持操作符重载。“操作符重载”其实是个简单的概念,你是否曾经想过为什么Python可以让你使用“+”操作符来同时实现加法和连接字符串?这就是操作符重载在发挥作用。 你可以定义使用Python标准操作符符号的对象,这可以让你在特定的环境中使用特定的对象,就像下方的例子一样。 ![]() PPRINT Python的默认print函数可以满足日常的输出任务,但如果要打印更大的、嵌套式的对象,那么使用默认的print函数打印出来的内容会很丑陋。 这个时候我们就需要pprint了,它可以让复杂的结构型对象以可读性更强的格式显示。这对于经常要面对非普通数据结构的Python开发者来说是必不可少的工具。 ![]() QUEUE(队列) Python支持多线程,它是通过标准库中的Queue模块来实现的。这个模块可以让你实现队列数据结构。这种数据结构可以让你根据特定的规则添加和检索条目。 “先进先出”(FIFO)队列可以让你按照添加对象的顺序来检索他们。“后进先出”(LIFO)队列可以让你首先访问最近添加的对象。最后,优先队列可以让你根据他们排序的顺序进行检索。 _REPR_ 当你定义一个类的时候,提供一个方法可以返回用来表示该类对象的可打印字符串会非常有用。例如: ![]() 这使得debug更加方便,具体的定义方式如下: ![]() SH sh库让你像调用方法那样调用系统中的命令。 ![]() TYPE HINT(类型提示) Python是一种动态类型语言。当你定义变量、函数、类别的时候,你不需要指定数据的类型。这可以大大提升你的开发速度,但也是有代价的。你可能会因为一个简单的输入问题而导致运行出错。 在Python3.5之后,这就不是问题了,在定义函数的时候你可以自主选择要不要提供类型提示。 ![]() 你还可以定义类型的别名: ![]() 虽然不是强制性的,类型注释可以让你的代码理解起来更加简单。它们也允许你使用类型检测工具在运行之前捕获这些零散的类型错误。如果你正在从事大型、复杂的项目,那么类型注释也许会非常有帮助 UUID 通过Python标准库中的uuid模块,可以快速并简单地生成统一的唯一ID(又称UUID). ![]() UUID是128位的全局唯一标识符,通常由32字节的字符串表示。它可以保证时间和空间的唯一性,也称为GUID,全称为:UUID —— Universally Unique IDentifier,Python 中叫 UUID。它通过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的唯一性。 VRITUAL ENVIRONMENTS 这可能是我最喜欢的Python技巧了。你可能经常要处理不止一个Python项目,不幸的是,有时候不同项目会依赖不同的Python版本。这个时候,你应该在系统里安装哪个Python版本呢? 幸运的是,Python可以支持建立不同的虚拟环境来满足不同的版本需求。 ![]() 现在你可以在一台机器上安装和运行各个独立版本的Python。太棒了! WIKIPEDIA (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |