- 博客(20)
- 收藏
- 关注
原创 python实现单例模式总结
装饰器def singleton(cls): def get_instance(*args, **kwargs): if not hasattr(cls, "_instance"): cls._instance = cls(*args, **kwargs) return cls._instance return get_i...
2018-07-30 17:29:47 1183
原创 Python中的descriptor中的一点疑问
在我的印象中,类中的函数是可以有两种调用方式的,如下:class B: def func(self): return 10b = B()b.func()B.func(b) 于是,在之前研究descriptor的时候,我就有了几点困惑 我将代码更换成了如下两个版本版本1import timeclass LazyProperty(object):...
2018-07-15 15:31:35 383
原创 Python中的descriptor
1. 一切皆对象 在python中不仅仅是类的实例是对象,包括类和函数也是对象。2.函数对象 可以看看下面的outer 返回的是什么def outer(): def inner(): return 10 return innerfunc = outer()print(func) 可以看出,func为一个函数对象:&l...
2018-07-13 10:42:03 1167
原创 MySQL中innodb的索引和锁
innodb是支持行锁的。并且,索引可以让查询锁定更少的行。 如果你的查询从不访问那些不需要的行,那么就会锁定更少的行,从两个方面可以来看这对性能有好处 虽然innodb的行锁效率很高,内存使用也很少,但是锁定行的时候仍然会带来额外的开销 锁定超过需要的行会增加锁征用并减少并发性。 innodb只有在访问行的时候才会对其加锁,而索引能够减少innodb访问的行数,从而减少...
2018-07-31 10:00:19 979
原创 异步爬取网站的图片
看了好多文章,发送请求的代码都是aiohttp.request,但是这个似乎是老版本的。新版本的改成了要用在aiohttp.ClientSession环境下使用session来发送请求。import requestsimport asyncioimport aiohttpimport randomimport sysimport osdef get_proxy(): ...
2018-07-30 17:32:51 629
原创 concurrent.futures
需要下载的图片列表为,是妹子图中的一个页面(http://www.meizitu.com/a/5593.html)的所有图片,列表是用python爬的。urlList = ['http://mm.chinasareview.com/wp-content/uploads/2018a/01/01/01.jpg', 'http://mm.chinasareview.com/wp-conte...
2018-07-29 15:32:32 690
转载 红黑树的删除
查阅了很多的资料,最终把红黑树的删除操作弄明白。为方便日后温习,也为那些正想弄明白但又苦苦明白不了该操作详细原理的同学查阅,特将其当笔记记录下来。下面内容是个人所理解的红黑树的删除操作,如果有不对的地方,欢迎各路大神指正。 红黑树的删除操作 1:节点命名约定 D表示要被删除的节点。即:取 Delete 的首字母; P 表示父节点。即:取 Parent 的首字母;...
2018-07-26 17:48:34 187
转载 Mysql事物的4种隔离级别
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Re...
2018-07-26 16:00:26 449
原创 通过元类实现单例模式的思考
python cookbook中通过元类来实现单例模式的代码如下class Singleton(type): def __init__(cls, *args, **kwargs): cls.__instance = None super().__init__(*args, **kwargs) def __call__(cls, *args,...
2018-07-23 22:28:14 543
原创 threading中的锁
threading.Lock 这个锁是不被某个特定线程所拥有的。一个线程获取了锁,之后任何线程尝试着获取锁,都会失败,包括这个获取了锁的线程自己尝试获取锁。 例如,如下代码就会堵塞import threadinglock = threading.Lock()lock.acquire()lock.acquire()lock.release()lock.release...
2018-07-23 07:31:07 1487
原创 MySQL中通过一个表的数据更新另一个表的数据
高性能MySQL中有一个更新语句,让我有点惊讶。 那就是如下这句:update actor inner join film_actor using (actor_id) set actor.last_update=film_actor.last_update; 这个更新的是个什么鬼,actor inner join film_actor using (actor_id)的结果...
2018-07-21 11:18:40 2091
转载 mysql中 执行计划的extra字段---- using where , using index 和 using where & using index 整理
原文地址是:https://blog.csdn.net/hsc_1/article/details/81140758先上表结构: CREATE TABLE table ( xxx varchar(20) NOT NULL, yyy varchar(20) NOT NULL, zzz datetime NOT NULL, aaa varchar(10) NOT NULL, PRIMA...
2018-07-21 08:11:47 1931
原创 MySQL中的innodb引擎的数据结构
在看高性能MySQL中,看到一个查询。 当时觉得explain的结果很没道理。explain select film_id from film order by title limit 50,5; 结果是这样的。 其中film这个表的索引如下 我就在想,通过对title排序,然后进行limit 50, 5。这个没问题,那就是通过索引就可以快速的操作。 ...
2018-07-21 07:56:47 6698
原创 mysql中变量赋值的顺序
今天看高性能mysql中的6.7.9的自定义变量。 其中以一句话让我有点懵逼,那就是:使用用户自定义变量的一个最常见的问题就是没有注意到在赋值和读取变量的时候可能是在不同的阶段。 之后有一个对这句话的解释就是:这些出乎意料的结果可以在EXPLAIN语句中找到,注意看在Extra列中的'Using where', 'Using temporara'或者'Using filesort'...
2018-07-20 19:32:42 2522 2
原创 参数的疑问
class Foo: def __new__(cls, *args, **kwargs): print("execute new") print("*args is ", args) return super().__new__(cls) def __init__(self, value): print('ecec...
2018-07-18 17:02:43 81
原创 Linux
1、';'用';' ---------是先执行第一个命令,不管第一个命令是否出错都执行下一个命令。2、'&&'用'&&'--------是当第一个命令正确执行完毕后,才执行下一个命令,类似短路。...
2018-07-12 16:20:46 133
原创 python中的双前导下划线
__在Python类中的含义就是,只能在定义所在的类访问,其他地方是不能访问的。并不是针对子类或者其他什么类类似于java中的访问权限class A: def __init__(self): B.__a = 'hu'class B: passa = A()print(B.__a)上面代码会出现异常,为type object 'B' has ...
2018-07-11 18:41:59 860
原创 Python中的super
I had played a bit with super(), and had recognized that we can change calling order.For example, we have next hierarchy structure: A / \ B C \ / DIn this case MRO of D will be (only for...
2018-07-09 11:15:13 125
原创 Python读取cfg文件
[mysql]HOST = 127.0.0.1PORT = 3306USER = rootPWD = 123456789DB = employeesCHARSET = utf8[redis]# #redis配置,暂时写在这里,线下配置。线上一定要从新配置,并且不要上传到gitlab。 非常重要!!!HOST = 127.0.0.1PORT = 6379PWD =...
2018-07-05 16:48:58 16123
原创 Python多线程
1. import time, threadingdef loop(): print("thread %s is running..." % threading.current_thread().name) n = 0 while n < 5: n = n+1 print("thread %s >>> %s"%(t...
2018-07-03 15:04:20 113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人