![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
流畅的python
Perror_one
无呜呜呜
展开
-
流畅的python--特殊方法
python中的特殊方法是主要是被python解释器调用,再大部分情况下不需要自己去实现特殊方法,比如len(x),这里实际上是调用的len()方法,但是在实际中我们不会去使用x.len()这样的书写。如果x是一个自己实现的类并且再类里面实现了一个len()方法,那么python就会去调用这个类里面的方法。 大部分情况下调用特殊方法都是隐性调用。比如: for i in x: 这里实原创 2017-06-15 21:23:39 · 252 阅读 · 0 评论 -
流畅的python--字典中的散列表
字典中的散列表其实就是稀疏数组(总会有一些元素是空白的数组),散列表中的单元叫:表元,在构建字典时会有产生两个表元,一个用来标记健,一个用来标记值,因为两个表元的长度都是相等的,所以可以通过表元的偏移量来查找字典。 python中最具有效率的内置数据类型就是字典和集合,这两种都是通过散列表来实现的。为了测试python中字典,集合和其他的数据类型的速度我做了以下的实验:import原创 2017-06-15 22:27:44 · 969 阅读 · 0 评论 -
流畅的python--dict的优点以及缺点
1.健必须是可散列的。 用户自己实现的对象默认都是可散列的,因为id()不同。一个可散列对象应该有以下属性: 支持hash()函数,通过hash()方法得到的散列值是不变的。 可以通过eq()方法来检测相等性 如果a == b,那么hash(a) == hash(b)2.字典内存开销大 因为字典是由散列表实现的,散列表中肯定对出现一些稀疏,这就导致了原创 2017-06-17 13:38:13 · 2854 阅读 · 2 评论 -
python的高级用法 -- namedtuple
python的高级用法 – namedtuplenamedtuple函数用来构建一个有名字的元组或者类,这种方法可以更有效的调试代码原创 2017-06-07 23:47:00 · 471 阅读 · 0 评论 -
流畅的python--深拷贝,浅拷贝
说到python中的对象引用问题,还得看看is和==的区别:>>> a = [1,2,3,4] >>> b = [1,2,3,4] >>> a == b True >>> a is b False 可以看见a和b中的数值都是一样的但是==与is的结果却不是一样的,这是因为python中==比较的是a和b的数值相等,is比较对象的标识是否相等。所以在python中我们经常会使用==来比较对象的数值时原创 2017-06-27 23:30:30 · 2221 阅读 · 0 评论