๋ชฉ์ฐจ
ํ์ด์ฌ์ ๊ฐ์ฒด ์ฐธ์กฐ ๋ฐฉ์์ ๋ํด์ ์์๋ณด์๋ค.
Call by Object Reference
๊ฐ์ฒด์ ์ฃผ์๊ฐ ํจ์๋ก ์ ๋ฌ๋๋ ๋ฐฉ์์ด๋ค.
์๋์ ์์์ ํจ๊ป ์์๋ณด์!
def tomato(apple):
print(apple) # [0]
apple.append(1) # 1 ์ถ๊ฐ
print(tomato) # [0,1]
print(apple) # [0,1]
carrot = [0]
tomato(carrot)
print(carrot)
#print(apple) apple์ local๋ณ์๋ผ์ ๋น์ฐํX
--------
# [0]
# [0,1]
# [0,1]
# [0,1]
์์ ๊ทธ๋ฆผ์ ๋ณด์
carrot์ด๋ผ๋ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ฉด
ํน์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ํ ๋น์ด ๋๋ค.
carrot์ tomato๋ผ๋ ํจ์์ ๋ฃ์ด์
carrot์ apple์ด ๋์๋ค.
์ฆ, apple๋ ๊ฐ์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ๋๋ ๊ฒ์ด๋ค!
๊ทธ์ ๋ฐ๋ผ์ apple์ 1์ ์ถ๊ฐํด์ฃผ๋ ๊ฒ์
carrot์ด ๊ฐ๋ฆฌํค๋ ๊ฒ ์ญ์ ๊ฐ๊ธฐ ๋๋ฌธ์
carrot์ printํด๋ณด์์ ๋๋ 1์ด ์ถ๊ฐ๋ ๊ฒ์ ์ ์ ์๋ค.
์กฐ๊ธ ๋ค๋ฅธ ์์๋ฅผ ๋ณด์!
def tomato(apple):
print(apple) # [0]
apple.append(1) # [0,1]
apple = [2,3] # apple์ [2,3] ํ ๋น
print(carrot)
print(apple)
carrot = [0]
tomato(carrot)
print(carrot)
--------
# [0]
# [0, 1]
# [2, 3]
# [0, 1]
์ด๋ฒ์๋ ์ค๊ฐ์ apple์๊ฒ ์๋ก์ด ๊ฐ์ ํ ๋น์์ผฐ๋ค.
์ด๋ฅผ ํตํด ์ ์ ์๋ ๊ฒ์
๊ฐ์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ค๊ฐ
์๋ก์ด ๊ฐ์ ํ ๋น์ํค๋ฉด ์๋ก์ด ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ๋๋ค.
'๐ | Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] collections ๋ชจ๋ (0) | 2023.01.05 |
---|---|
Python_๋ ๊ฐ์ ๋์ ๋๋ฆฌ ํฉ์น๊ธฐ! (0) | 2022.01.19 |
Python_๋ฌธ์์ด ๋ค์ง๊ธฐ (0) | 2022.01.17 |
ํ์ด์ฌ ๋ฌธ๋ฒ ๊ณต๋ถ (0) | 2021.08.29 |
๋๊ธ