Python hash() -menetelmä
Python hash()-funktio on sisäänrakennettu funktio ja palauttaa objektin hash-arvon, jos sillä on sellainen. Hajautusarvo on kokonaisluku, jota käytetään sanakirjan avaimien nopeaan vertaamiseen, kun tarkastellaan a sanakirja .
Python hash()-funktion syntaksi
Syntaksi : hash(obj)
Parametrit: obj: Objekti, joka meidän on muutettava hashiksi.
Palautukset: Palauttaa tiivistetyn arvon, jos mahdollista.
Hash()-funktion ominaisuudet
- Hash():lla hajautetut objektit ovat peruuttamattomia, mikä johtaa tietojen menetykseen.
- hash() palauttaa tiivistetyn arvon vain muuttumattomille objekteille, joten sitä voidaan käyttää indikaattorina tarkistettaessa muuttumattomia/muuttumattomia objekteja.
- Pythonissa voimme koodata tietoja turvallisuuden vuoksi käyttämällä hash()-funktiota.
Python hash()-funktioesimerkkejä
Esimerkki 1: Hash():n toimivuuden osoittaminen
Tässä esimerkissä käytämme hash()-funktiota tulostamaan kokonaisluvun, merkkijonon ja float hash-arvon käyttämällä hash()-funktiota Python .
Python 3
# initializing objects> int_val> => 4> str_val> => 'techcodeview.com'> flt_val> => 24.56> # Printing the hash values.> # Notice Integer value doesn't change> # You'll have answer later in article.> print> (> 'The integer hash value is : '> +> str> (> hash> (int_val)))> print> (> 'The string hash value is : '> +> str> (> hash> (str_val)))> print> (> 'The float hash value is : '> +> str> (> hash> (flt_val)))> |
Lähtö
The integer hash value is : 4 The string hash value is : 4349415460800802357 The float hash value is : 1291272085159665688
Esimerkki 2: Hash() ominaisuuden osoittaminen
Tämä Python-koodi osoittaa, kuinka hash()> toiminto käyttäytyy kanssa muuttumattomia ja muuttumattomia esineitä . Se alustaa ensin monikon ja luettelon samoilla elementeillä. Koodi tulostaa monikon hash-arvon onnistuneesti. Kuitenkin, kun se yrittää tulostaa listan hash-arvon, joka on muuttuva, se nostaa a TypeError> koska muuttuvia objekteja, kuten luetteloita, ei voida tiivistää suoraan.
Python 3
# initializing objects> # tuple are immutable> tuple_val> => (> 1> ,> 2> ,> 3> ,> 4> ,> 5> )> # list are mutable> list_val> => [> 1> ,> 2> ,> 3> ,> 4> ,> 5> ]> # Printing the hash values.> # Notice exception when trying> # to convert mutable object> print> (> 'The tuple hash value is : '> +> str> (> hash> (tuple_val)))> print> (> 'The list hash value is : '> +> str> (> hash> (list_val)))> |
Lähtö:
The tuple hash value is : 8315274433719620810
Poikkeukset:
Traceback (most recent call last): File '/home/eb7e39084e3d151114ce5ed3e43babb8.py', line 15, in print ('The list hash value is : ' + str(hash(list_val))) TypeError: unhashable type: 'list' Esimerkki 3: hash() muuttumattomalle tuple-objektille
Tämä Python-koodi alustaa monikon nimeltä var> sisältää merkit 'G', 'E', 'E' ja 'K'. The hash()> funktiota käytetään luomaan hajautusarvo monikkoa varten var> . Tässä tapauksessa koodi tulostaa monikon hash-arvon, joka on yksilöllinen kokonaisluku, joka edustaa monikkoa sen sisällön ja rakenteen perusteella.
Python 3
# hash() for immutable tuple object> var> => (> 'G'> ,> 'E'> ,> 'E'> ,> 'K'> )> print> (> hash> (var))> |
Lähtö
3843673861956289951
Esimerkki 4: hash() päällä M utable Object
hash()-menetelmää käyttää yksi muuttumaton objekti, jos käytämme tätä muuttuvassa objektissa, kuten luettelossa, joukossa, sanakirjoissa, se tuottaa virheen.
Python 3
l> => [> 1> ,> 2> ,> 3> ,> 4> ]> print> (> hash> (l))> |
Lähtö
TypeError: unhashable type: 'list'
Esimerkki 5: hash() mukautetussa objektissa
Tässä ohitamme __hash()__-menetelmät kutsumaan hash()-menetelmää, ja __eq__()-metodi tarkistaa kahden mukautetun objektin yhtäläisyyden.
Python 3
class> Emp:> > def> __init__(> self> , emp_name,> id> ):> > self> .emp_name> => emp_name> > self> .> id> => id> > def> __eq__(> self> , other):> > > # Equality Comparison between two objects> > return> self> .emp_name> => => other.emp_name> and> self> .> id> => => other.> id> > def> __hash__(> self> ):> > > # hash(custom_object)> > return> hash> ((> self> .emp_name,> self> .> id> ))> emp> => Emp(> 'Ragav'> ,> 12> )> print> (> 'The hash is: %d'> %> hash> (emp))> # We'll check if two objects with the same> # attribute values have the same hash> emp_copy> => Emp(> 'Ragav'> ,> 12> )> print> (> 'The hash is: %d'> %> hash> (emp_copy))> |
Lähtö
The hash is: 7627717261227283506 The hash is: 7627717261227283506