λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
🐍 | Python/파이썬 문법

python _ id()ν•¨μˆ˜_μΆ”κ°€λ‘œ μ•Œκ²Œ 된 점!

by KASSID 2021. 12. 30.

λͺ©μ°¨

    728x90

    전에 λ‹€λ€˜μ—ˆλ˜ id()ν•¨μˆ˜μ— λŒ€ν•΄μ„œ κ³΅λΆ€ν•˜λ‹€λ³΄λ‹ˆ 쑰금 더 μƒˆλ‘­κ²Œ μ•Œκ²Œ 된 λ‚΄μš©μ΄λ‹€!

     

    id()ν•¨μˆ˜λŠ” μ§€μ •ν•œ '객체'에 λŒ€ν•œ λ©”λͺ¨λ¦¬μ—μ„œμ˜ μœ„μΉ˜, μ£Όμ†Œλ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜μ΄λ‹€.

     

    a=1
    id(a)
    >>> 1532352

    μœ„μ™€ 같은 μ˜ˆμ‹œλ‘œ 값을 λ°˜ν™˜ν•΄μ€€λ‹€.


    λ‹€μŒμ˜ μ˜ˆμ‹œλ₯Ό 보면

    a=1
    b=a
    c=b
    d=1
    
    print(id(a))
    print(id(b))
    print(id(c))
    print(id(d))
    
    >>> 1532352
    >>> 1532352
    >>> 1532352
    >>> 1532352

    b=a 와 같은 λŒ€μž… 연산을 이전에 배열을 ν†΅ν•΄μ„œ λ‹€λ€˜μ—ˆκ³ ,

    μ •μˆ˜λ₯Ό μ΄μš©ν•΄μ„œ 같은 과정을 싀행해보지 μ•Šμ•˜μ—ˆλ‹€.

     

    그런데 μœ„μ—μ„œ 보면 μ•Œ 수 μžˆλ“―μ΄

    μ •μˆ˜ 값이 κ°™λ‹€λ©΄ 같은 λ©”λͺ¨λ¦¬ μ£Όμ†Œλ₯Ό λ°˜ν™˜ν•œλ‹€!

     

     

    이에 λŒ€ν•΄μ„œ 쑰사λ₯Ό ν•΄λ³΄μ•˜λ‹€.

    1. Python의 λͺ¨λ“  κ°μ²΄λŠ” 생성 μ‹œμ— 고유 IDκ°€ 할당이 λœλ‹€.
    2. IDλŠ” 개체의 λ©”λͺ¨λ¦¬ μ£Όμ†Œμ΄κ³ , ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ λ§ˆλ‹€ 달라진닀.

    μ΄λ•Œ, μ •μˆ˜ -5 ~ 256κΉŒμ§€μ— λŒ€ν•΄μ„œλŠ” 이미 ν•΄λ‹Ή 값이 μ‘΄μž¬ν•˜λ©΄

    기쑴의 객체λ₯Ό λ°”μΈλ”©ν•œλ‹€. (binding = λ©”λͺ¨λ¦¬ μ°Έμ‘°)

     

    μ΄λŠ” 동일 값을 λ©”λͺ¨λ¦¬μ— μ—¬λŸ¬λ²ˆ ν• λ‹Ήν•¨μœΌλ‘œμ¨ λ°œμƒν•˜λŠ” λ©”λͺ¨λ¦¬ λ‚­λΉ„λ₯Ό 쀄이기 μœ„ν•¨!

     

    즉, -5~256은 νŒŒμ΄μ¬μ—μ„œ ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ λ™μ•ˆ κ³ μœ ν•œ idλ₯Ό κ°–κ²Œ ν•˜κ³ 

    μ‹€ν–‰ 쀑 같은 값을 ν™œμš©ν•œλ‹€λ©΄ μ£Όμ†Œλ₯Ό κ°™κ²Œ λ§Œλ“€μ–΄μ„œ

    λ©”λͺ¨λ¦¬ λ‚­λΉ„λ₯Ό μ€„μ—¬μ£ΌλŠ” κΈ°λŠ₯을 ν•˜λŠ” 것이닀.

     

    파이썬 μžμ²΄μ—μ„œ 효율적으둜 ν™œμš©ν•˜λ„λ‘ 섀계가 λ˜μ–΄ μžˆλŠ” κ²ƒμ΄μ—ˆλ‹€!!

    '🐍 | Python > 파이썬 문법' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

    클래슀_(1)  (0) 2021.11.03
    *args 와 **kwargs  (0) 2021.10.15
    ν•¨μˆ˜μ™€ λ©”μ†Œλ“œ  (0) 2021.10.02
    pickle  (0) 2021.09.28
    파일 μž…μΆœλ ₯  (0) 2021.09.23

    λŒ“κΈ€