Skip to content

Latest commit

ย 

History

History
15 lines (10 loc) ยท 1.03 KB

Memorymanaging.md

File metadata and controls

15 lines (10 loc) ยท 1.03 KB
  • ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ

    ๋Œ€ํ‘œ์ ์œผ๋กœ mutable ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ณธ ์ธ์ž๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ์ผ์–ด๋‚œ๋‹ค.

    def foo(a=[]):
        a.append(time.time())
        return a
    

    ์œ„์˜ ๊ฒฝ์šฐ foo()๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ๊ธฐ๋ณธ ์ธ์ž๊ฐ’์ธ a์— ํƒ€์ž„์Šคํƒฌํ”„ ๊ฐ’์ด ์ถ”๊ฐ€๋œ๋‹ค. ์ด๋Š” ์˜๋„ํ•˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•˜๋ฏ€๋กœ ๋ณดํ†ต์˜ ๊ฒฝ์šฐ a=None์œผ๋กœ ๋‘๊ณ  ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ if a is None ๊ตฌ๋ฌธ์œผ๋กœ ๋นˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ• ๋‹นํ•ด์ค€๋‹ค.

    ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ timeout ์ด ์—†๋Š” ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ์ˆ˜๋ก ์บ์‹œ ๋ฐ์ดํ„ฐ๋Š” ์Œ“์—ฌ๋งŒ ๊ฐ€๋Š”๋ฐ ์ด๋ฅผ ํ•ด์ œํ•  ๋ฃจํ‹ด์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด๋‘์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ด๋„ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์ดˆ๋ž˜ํ•œ๋‹ค.

    ํด๋ž˜์Šค ๋‚ด __del__ ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ํ–‰์œ„๋„ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ์ˆœํ™˜ ์ฐธ์กฐ ์ค‘์ธ ํด๋ž˜์Šค๊ฐ€ __del__ ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋กœ ํ•ด์ œ๋˜์ง€ ์•Š๋Š”๋‹ค.