Python

A collection of 9 posts

Python 方法解析顺序 MRO
Python

Python 方法解析顺序 MRO

对于支持继承的编程语言来说,其方法和属性可能定义在当前类,也可能来自基类,所以在方法调用时就需要对当前类和基类进行搜索以确定方法的位置。搜索的顺序,就是方法解析顺序 (Method Resolution Order, MRO)。对于只支持单继承的语言来说,MRO 比较简单;但对于Python这种支持多继承的语言来说,MRO 会相对复杂。 Python 的类 Python 有两种类: 经典类 python 2.1 之前,经典类是唯一可用的形式 新式类 python2.2 引入

使用Middleware为Scrapy Spider设置随机UA
Python

使用Middleware为Scrapy Spider设置随机UA

前言 做爬虫的都知道,模拟真实用户是很重要的,爬虫与反爬虫斗争的过程中,其实就是围绕伪装与鉴别,常见的反爬虫策略都会添加对 User Agent 的校验,会封掉常见的爬虫请求头,比如 Scrapy 默认的 User Agent 是什么呢?同过下面的方式试一下: scrapy shell https://httpbin.org/user-agent 在结果中使用: response.text 进行查看,结果为: { "user-agent":"Scrapy/

Python中的垃圾回收机制
Python

Python中的垃圾回收机制

简介 Python3 的垃圾回收机制(Garbage Collection)分为三点: 引用计数 — Reference Counting 标记-清除 — Mark and Sweep 分代回收 — Generational Collection 引用计数 — Reference Counting 什么是引用计数? 参考下维基百科的定义: 引用计数是计算机编程语言中的一种内存管理技术,是指将资源(可以是对象、内存或磁盘空间等等)的被引用次数保存起来,

如何在 Python3 中实现单例模式?
Python

如何在 Python3 中实现单例模式?

在最开始接触设计方法的时候,我们经常会接触到单例模式,它是23种GOF模式中最简单,也是最经常出现的一种设计模式,也是面试官最常爱考的一种模式。单例模式是一种创建型模式,它提供了一种创建对象的方式,确保只有单个对象被创建。这个设计模式主要目的是想在整个系统中只能出现类的一个实例,即一个类只有一个对象。 什么是单例模式? 单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。 — Wikipedia 实现单例模式的思路 实现单例模式的思路是:一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,

关于 Gmail 邮件地址的校验
Python

关于 Gmail 邮件地址的校验

之前介绍了通用的email校验方法,参考之前的文章 如何校验邮件地址是否存在? ,但是对于 Gmail 的邮件地址,我们可以使用如下的办法进行邮件校验。 这个方式源于一个被发现的接口,这个接口对于存在的Gmail地址和不存的Gmail 地址,有着不同的表现形式。而且这个接口还没有速率限制,那我们可以利用这个接口做很多事情。 方法介绍 这个网址为: https://mail.google.com/mail/gxlu,我们准备一个不存在的邮件地址:zijixiabiandeyouxiandizhi@gmail.com $ curl -v https://mail.google.