C'è un modo per generare un ID hash come in per gli oggetti in pitone che si basa esclusivamente su valori degli attributi degli oggetti? Ad esempio,Genera ID univoco per oggetto Python sulla base di suoi attributi
class test:
def __init__(self, name):
self.name = name
obj1 = test('a')
obj2 = test('a')
hash1 = magicHash(obj1)
hash2 = magicHash(obj2)
Quello che sto cercando è qualcosa in cui hash1 == hash2. Esiste qualcosa come questo in Python? So di poter verificare se obj1.name == obj2.name, ma sto cercando qualcosa di generale posso usare su qualsiasi oggetto.
non è garantito per essere unico però. –
@Bastien, hai ragione. Ma questo dipende davvero dall'applicazione. Per molti casi l'hash potrebbe essere sufficiente. –
Non è consigliato restituire nulla da __hash __ (self) oltre a un int (http://docs.python.org/reference/datamodel.html#object.__hash__) in quanto ciò renderà l'oggetto apparentemente ma non correttamente lavabile (come in utilizzato in dicts) – SingleNegationElimination