728x90
์์ ๋ณต์ฌ (Shallow copy) | ๊น์ ๋ณต์ฌ (Deep copy) | |
๋ฉ๋ชจ๋ฆฌ ์ฃผ์ | ๊ฐ์ | ๋ค๋ฆ |
์ฅ์ | โ ๊ณต๊ฐ, ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ฑ โ ํ์ด์ฌ์ ๊ธฐ๋ณธ ๋ณต์ฌ์์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด์ฉ ์์ |
โ ์๋ณธ ์ ์ง |
๋จ์ | โ ๋ณต์ฌ๋ณธ์ ์์ ํ์ ๋ ์๋ณธ๋ ๊ฐ์ด ๋ฐ๋ | โ ๊ณต๊ฐ, ๋ฉ๋ชจ๋ฆฌ ์ถ๊ฐ๋ก ์ฐจ์งํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋งํผ ์๋๋ ๋๋ ค์ง๊ณ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๋ ๋ถ์กฑํด์ง โ copy๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด์ฉํด์ผํจ |
ํ์ด์ฌ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ๋ณต์ฌ๋ฅผ ์ด์ฉํ๋ค.
var1 = [1,2,3]
var2 = var1 # ์์ ๋ณต์ฌ
print(id(var1), id(var2)) # 140364606746528 140364606746528 ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ด๋๊ฐ ์ถ๋ ฅ๋จ
์๋ณธ์ ์ ์งํ๊ธฐ ์ํด ๊น์ ๋ณต์ฌ๋ฅผ ์ด์ฉํ๊ณ ์ถ๋ค๋ฉด copy ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์์ผ ํ๋ค.
import copy
var1 = [1,2,3]
var2 = copy.deepcopy(var1)
print(id(var1), id(var2)) # 140364606800272 140364621903584 ์๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ์ฉํ๊ณ ์๋ค
์๋ณธ์ ์์ง ์์ผ๋ ค๋ฉด ๊น์ ๋ณต์ฌ๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด ์ค์ํ๋ค.
'๐ฑ CS Study > ํ์ด์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋จ๋ฝ ํ๊ฐ (short-circuit evaluation) (0) | 2022.07.26 |
---|---|
๋น๊ต ์ฐ์ฐ์ vs. ๋ ผ๋ฆฌ ์ฐ์ฐ์ (Comparison vs. Logical operator) (0) | 2022.07.25 |
๋์ ๋๋ฆฌ (dictionary) ํจ์ (0) | 2022.07.17 |
๋ฆฌ์คํธ (list) ํจ์ (0) | 2022.07.10 |
๋๊ธ