目录
1,查看类的属性和方法
查看类的属性和方法
print(dir(class_name))
判断类中是否存在某个属性或方法
print('function_name' in dir(class_name))
2,hash
①内置函数hash()
语法格式:hash(object),返回值是object的哈希值
三个特征:
1,相同的哈希值可能来自于不同的object
print(hash(-1), hash(-2)) # -2 -2
2,并非所有的对象都可以使用hash(),如列表、字典、集合
print(hash({'key': 'value'})) # TypeError: unhashable type: 'dict'
3,每次运行.py文件,同一个对象的哈希值可能不同
print(hash('-1')) # 第一次:6926710966680372037
# 第二次:7974068616234152760
# 第三次:-3282573047475317704
②面向对象中的__hash__()
object.__hash__() == hash(object)
print('-1'.__hash__() == hash('-1')) # True
说明:如果在类中重写了__hash__()方法(必须返回int类型,否则会报错),那么hash(实例)实际上就是在调用实例的__hash__()方法。
class test:
def __init__(self, hash_value):
self.hash_value = hash_value
def __hash__(self):
return self.hash_value
test_object = test(520)
print(hash(test_object)) # 520
# 注释掉__hash__方法后,得到的结果是131573885106