Jak wspomniano, id (x) tworzy niepowtarzalny identyfikator obiektu.
Ale twoje pytanie jest mylące, ponieważ metoda hashCode Java nie daje unikalnego identyfikatora. Kod asocjacyjny języka Java działa podobnie do większości funkcji mieszania: zawsze zwraca tę samą wartość dla tego samego obiektu, dwa obiekty, które są równe, zawsze otrzymują równe kody, a nierówne wartości mieszające oznaczają nierówne kody skrótu. W szczególności dwa różne i nierówne obiekty mogą uzyskać tę samą wartość.
To jest mylące, ponieważ kryptograficzne funkcje mieszające różnią się od tego i przypominają (choć nie do końca) "unikalny identyfikator", o który prosiłeś.
Pythonowym odpowiednikiem metody hashCode języka Java jest hash (x).
Zauważ, że 'hashCode()' w Javie niekoniecznie jest wyjątkowy, to tylko jedne starannie dobrane semantyka w połączeniu z 'equals()'. – Joey
I tak jak napisano poniżej, 'hash()' ma ** dokładnie ** tę samą semantykę co 'java.lang.Object.hashcode()'. –