logo

Python hash() 메서드

파이썬 해시() 함수 내장 함수이며 객체에 해시 값이 있는 경우 객체의 해시 값을 반환합니다. 해시 값은 사전 키를 보면서 빠르게 비교하는 데 사용되는 정수입니다. 사전 .

멀티플렉서

Python hash() 함수 구문

구문: 해시(obj)



매개변수: obj: 해시로 변환해야 하는 객체입니다.

반품 : 가능한 경우 해시된 값을 반환합니다.

hash() 함수의 속성

  • hash()를 사용하여 해시된 객체는 되돌릴 수 없으므로 정보가 손실됩니다.
  • hash()는 불변 객체에 대해서만 해시된 값을 반환하므로 가변/불변 객체를 확인하는 지표로 사용할 수 있습니다.
  • Python에서는 hash() 함수를 사용하여 보안을 위해 데이터를 인코딩할 수 있습니다.

Python hash() 함수 예제

예시 1: hash() 작업 시연

이 예에서는 hash() 함수를 사용하여 hash()를 사용하여 정수, 문자열 및 부동 소수점 해시 값을 인쇄합니다. 파이썬 .



파이썬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)))>

>

파워셸 관리자
>

산출

The integer hash value is : 4 The string hash value is : 4349415460800802357 The float hash value is : 1291272085159665688>

예시 2: hash()의 속성 시연

이 Python 코드는hash()>함수는 다음과 같이 동작합니다. 불변 객체와 가변 객체 . 먼저 동일한 요소를 사용하여 튜플과 목록을 초기화합니다. 코드는 튜플의 해시 값을 성공적으로 인쇄합니다. 그러나 변경 가능한 목록의 해시 값을 인쇄하려고 하면TypeError>목록과 같은 변경 가능한 객체는 직접 해싱될 수 없기 때문입니다.

파이썬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)))>

>

>

산출:

오라클 테이블 생성
The tuple hash value is : 8315274433719620810>

예외:

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'>

예제 3: 불변 튜플 객체에 대한 hash()

이 Python 코드는 다음과 같은 튜플을 초기화합니다.var>'G', 'E', 'E', 'K' 문자가 포함되어 있습니다. 그만큼hash()>함수는 튜플에 대한 해시 값을 생성하는 데 사용됩니다.var>. 이 경우 코드는 튜플의 내용과 구조를 기반으로 튜플을 나타내는 고유한 정수인 튜플의 해시 값을 인쇄합니다.

파이썬3




# hash() for immutable tuple object> var>=> (>'G'>,>'E'>,>'E'>,>'K'>)> print>(>hash>(var))>

>

>

산출

3843673861956289951>

예시 4: hash() 켜짐 그들을 사용할 수 있는 객체

하나의 불변 객체가 사용하는 hash() 메소드를 목록, 세트, ​​사전과 같은 가변 객체에 사용하면 오류가 발생합니다.

파이썬3


프롤로그 언어



l>=> [>1>,>2>,>3>,>4>]> print>(>hash>(l))>

>

>

산출

TypeError: unhashable type: 'list'>

예제 5: 사용자 정의 개체에 대한 hash()

여기서는 __hash()__ 메서드를 재정의하여 hash()를 호출하고 __eq__() 메서드는 두 사용자 정의 개체가 같은지 확인합니다.

파이썬3

자식 상태 -s




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))>

>

>

산출

The hash is: 7627717261227283506 The hash is: 7627717261227283506>