0%

当我自定义类时,如果定义了__eq__方法,这个类的对象会变成unhashable。以下是在python3.6中的情况:

1
2
3
4
5
6
7
8
9
10
11
12
>>> class Item:
... def __init__(self, name):
... self.name = name
... def __eq__(self, other):
... if not isinstance(other, self.__class__):
... return False
... return self.name == other.name
...
>>> {Item('a'): 1}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'Item'
阅读全文 »

在开发日志分析功能时,需要读取不同编码的文件然后对文件内容进行解析,那么首先要解决的就是如何检测编码的问题。

阅读全文 »

在[-5, 256]中的小整数被定义在了一个整数对象池里,当引用小整数时会自动引用整数对象池里的对象。

阅读全文 »