-
๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ ์ ์๋ ๊ฒฝ์ฐ
๋ํ์ ์ผ๋ก mutable ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ณธ ์ธ์๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ์ผ์ด๋๋ค.
def foo(a=[]): a.append(time.time()) return a
์์ ๊ฒฝ์ฐ
foo()
๋ฅผ ํธ์ถํ ๋๋ง๋ค ๊ธฐ๋ณธ ์ธ์๊ฐ์ธa
์ ํ์์คํฌํ ๊ฐ์ด ์ถ๊ฐ๋๋ค. ์ด๋ ์๋ํ์ง ์์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ๋ฏ๋ก ๋ณดํต์ ๊ฒฝ์ฐa=None
์ผ๋ก ๋๊ณ ํจ์ ๋ด๋ถ์์if a is None
๊ตฌ๋ฌธ์ผ๋ก ๋น ๋ฆฌ์คํธ๋ฅผ ํ ๋นํด์ค๋ค.๋ค๋ฅธ ๊ฒฝ์ฐ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ timeout ์ด ์๋ ์บ์ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํด ๋ณผ ์ ์๋ค. ์์ฒญ์ด ๋ค์ด์ฌ์๋ก ์บ์ ๋ฐ์ดํฐ๋ ์์ฌ๋ง ๊ฐ๋๋ฐ ์ด๋ฅผ ํด์ ํ ๋ฃจํด์ ๋ฐ๋ก ๋ง๋ค์ด๋์ง ์๋๋ค๋ฉด ์ด๋ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ด๋ํ๋ค.
ํด๋์ค ๋ด
__del__
๋ฉ์๋๋ฅผ ์ฌ์ ์ํ๋ ํ์๋ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ผ์ผํฌ ์ ์๋ค. ์ํ ์ฐธ์กฐ ์ค์ธ ํด๋์ค๊ฐ__del__
๋ฉ์๋๋ฅผ ์ฌ์ ์ํ๊ณ ์๋ค๋ฉด ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ก ํด์ ๋์ง ์๋๋ค.