lst1 = [1,2,[1,2]]
print(lst1)
tup1 = (1,2,[1,2])
print[tup1]
set1 = {1,2,[1,2]}
print(set1) # 报错,不存在 hash 属性
set2 = {“abc”,“def”,“ghi”}
print(set2)
set3 = {1,2,3}
print(set3)
s1 = [1,2,3]
print(hash(s1)) # 报错
s2 = (1,2,3)
print(hash(s2)) # 得到 hash 值
print(hash(1))
print(hash(“hello”))
hash 值 具备散列算法,是不一定固定的
class Student()
def _init_(self, name, age):
self.name = name
self.age = age
def _hash_(self):
return hash(self.name)
# 指定以什么来判断hash值
def _eq_(self,other):
return self.name == other.name and self.age == other.name
# 指定以什么属性来判断不同变量之间如何作比较
stu1 = Student(“小强”,3000)
stu2 = Student(“小强”,3000)
stu3 = Student(“小强”,3000)
print(hash(stu1))
print(hash(stu2))
print(hash()stu3)
#·手动修改__hash__方法之后,hash值相等
print(stu1 == stu2 == stu3)
#·手动修改__eq__方法之后,变量相等
魔法方法__hash__
猜你喜欢
转载自blog.csdn.net/A_xiansheng/article/details/94598196
今日推荐
周排行