Python进阶
文章平均质量分 93
Python进阶系列文章。
Magic-Kaito
公众号「水滴与银弹」,用简单的方式把技术讲清楚。7年资深后端研发,从事基础架构和数据库中间件研发。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python进阶——为什么GIL让多线程变得如此鸡肋?
微信搜索关注「水滴与银弹」公众号,第一时间获取优质技术干货。7年资深后端研发,用简单的方式把技术讲清楚。做 Python 开发时,想必你肯定听过 GIL,它经常被 Python 程序员吐槽,说 Python 的多线程非常鸡肋,因为 GIL 的存在,Python 无法利用多线程提高性能。但事实真的如此吗?这篇文章,我们就来看一下 Python 的 GIL 到底是什么?以及它的存在,究竟对我们的程序有哪些影响。GIL是什么?查阅官方文档,GIL 全称 Global Interpreter Lock.原创 2021-01-23 13:34:50 · 210 阅读 · 0 评论 -
Python进阶——什么是描述符?
微信搜索关注「水滴与银弹」公众号,第一时间获取优质技术干货。7年资深后端研发,用简单的方式把技术讲清楚。在 Python 开发中,你可能听说过「描述符」这个概念,由于我们很少直接使用它,所以大部分开发人员并不了解它的原理。但作为熟练使用 Python,想要进阶的你,建议还是了解一下描述符的原理,这也便于你更深层次地理解 Python 的设计思想。其实,在开发过程中,虽然我们没有直接使用到描述符,但是它在底层却无时不刻地被使用到,例如以下这些:function、bound method、unbo.原创 2021-01-23 13:34:16 · 247 阅读 · 0 评论 -
Python进阶——如何正确使用yield?
微信搜索关注「水滴与银弹」公众号,第一时间获取优质技术干货。7年资深后端研发,用简单的方式把技术讲清楚。在 Python 开发中,yield 关键字的使用其实较为频繁,例如大集合的生成,简化代码结构、协程与并发都会用到它。但是,你是否真正了解 yield 的运行过程呢?这篇文章,我们就来看一下 yield 的运行流程,以及在开发中哪些场景适合使用 yield。生成器如果在一个方法内,包含了 yield 关键字,那么这个函数就是一个「生成器」。生成器其实就是一个特殊的迭代器,它可以像迭代器那样.原创 2021-01-23 13:33:35 · 352 阅读 · 0 评论 -
Python进阶——什么是迭代器?
微信搜索关注「水滴与银弹」公众号,第一时间获取优质技术干货。7年资深后端研发,用简单的方式把技术讲清楚。在 Python 开发中,我们经常听到有关「容器」、「迭代器」、「可迭代对象」、「生成器」的概念。我们经常把这些概念搞混淆,它们之间有哪些联系和区别呢?这篇文章,我们就来看一下它们之间的关系。容器首先,我们先来看一下容器是如何定义的?简单来说,容器就是存储某些元素的统称,它最大的特性就是判断一个元素是否在这个容器内。怎么理解这句话?很简单,在 Python 中,我们通常使用 in 或 .原创 2021-01-23 13:32:58 · 271 阅读 · 0 评论 -
Python进阶——什么是上下文管理器?
微信搜索关注「水滴与银弹」公众号,第一时间获取优质技术干货。7年资深后端研发,用简单的方式把技术讲清楚。在 Python 开发中,我们经常会使用到 with 语法块,例如在读写文件时,保证文件描述符的正确关闭,避免资源泄露问题。你有没有思考过, with 背后是如何实现的?我们常常听到的上下文管理器究竟是什么?这篇文章我们就来学习一下 Python 上下文管理器,以及 with 的运行原理。with语法块在讲解 with 语法之前,我们先来看一下不使用 with 的代码如何写?我们在操作一个.原创 2021-01-23 13:31:56 · 289 阅读 · 0 评论 -
Python进阶——什么是元类?
微信搜索关注「水滴与银弹」公众号,第一时间获取优质技术干货。7年资深后端研发,用简单的方式把技术讲清楚。如果你看过比较优秀的 Python 开源框架,肯定见到过元类的身影。例如,在一个类中定义了类属性 __metaclass__,这就说明这个类使用了元类来创建。那元类的实现原理究竟是怎样的?使用元类能帮我们在开发中解决什么样的问题?这篇文章,我们就来看一下 Python 元类的来龙去脉。什么是元类?我们都知道,定义一个类,然后调用它的构造方法,就可以初始化出一个实例出来,就像下面这样:cla.原创 2021-01-23 13:31:08 · 284 阅读 · 0 评论 -
Python进阶——如何正确使用魔法方法?(下)
微信搜索关注「水滴与银弹」公众号,第一时间获取优质技术干货。7年资深后端研发,用简单的方式把技术讲清楚。在上一篇文章Python进阶——如何正确使用魔法方法?(上)中,我们主要介绍了关于构造与初始化、类的表示、访问控制这几类的魔法方法,以及它们的使用场景。这篇文章,我们继续介绍剩下的魔法方法,主要包括:比较操作、容器类操作、可调用对象、序列化。比较操作比较操作的魔法方法主要包括以下几种:__cmp____eq____ne____lt____gt____cmp__从名字我们就能看.原创 2021-01-21 14:51:33 · 193 阅读 · 0 评论 -
Python进阶——如何正确使用魔法方法?(上)
微信搜索关注「水滴与银弹」公众号,第一时间获取优质技术干货。7年资深后端研发,用简单的方式把技术讲清楚。在做 Python 开发时,我们经常会遇到以双下划线开头和结尾的方法,例如 __init__、__new__、__getattr__、__setitem__ 等等,这些方法我们通常称之为「魔法方法」,而使用这些「魔法方法」,我们可以非常方便地给类添加特殊的功能。这篇文章,我们就来分析一下,Python 中的魔法方法都有哪些?使用这些魔法方法,我们可以实现哪些实用的功能?魔法方法概览首先,我们先.原创 2021-01-21 14:49:22 · 250 阅读 · 0 评论 -
Python进阶——如何实现一个装饰器?
微信搜索关注「水滴与银弹」公众号,第一时间获取优质技术干货。7年资深后端研发,用简单的方式把技术讲清楚。在 Python 开发中,我们经常会看到使用装饰器的场景,例如日志记录、权限校验、本地缓存等等。使用这些装饰器,给我们的开发带来了极大的便利,那么一个装饰器是如何实现的呢?这篇文章我们就来分析一下,Python 装饰器的使用及原理。一切皆对象在介绍装饰器前,我们需要理解一个概念:在 Python 开发中,一切皆对象。什么意思呢?就是我们在开发中,无论是定义的变量(数字、字符串、元组、列表.原创 2021-01-18 10:13:07 · 245 阅读 · 0 评论
分享