๐ ํ์ด์ฌ ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ํ์ด์ฌ ๋งค์ง ๋ฉ์๋, Python Magic Method Cheatsheet. Magic Method Python Concept Sentence __getitem__(key) ์ฒจ์ํ ๊ฐ์ฒด Subscriptable Object : ์ธ๋ฑ์ฑ์ด๋ ์ฌ๋ผ์ด์ค์์ ์ฌ์ฉ๋๋ค. object[key] object[i:j] object[i:j:k] __enter__() __exit__() ์ปจํ ์คํธ ๋งค๋์ Context Manager : ์ฃผ๋ก ๋ฆฌ์์ค๊ด๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ ๋น๋ ๋ฆฌ์์ค๋ฅผ ๋ชจ๋ ํด์ ํ ๋ ์ฌ์ฉํ๋ค. with object: __iter__() __next__() ์ดํฐ๋ฌ๋ธ ๊ฐ์ฒด Iterable Object : ๋ฐ๋ณต๊ฐ๋ฅํ ๊ฐ์ฒด. ์๋ฅผ ๋ค๋ฉด for๋ฌธ์ ์ฌ์ฉํด ๊ฐ์ ๋ฐ๋ณต์ ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ list, tuple, set, dict์ด ์ฌ๊ธฐ์ ํด๋นํ๋ค. ๋ด์ฅ ๋ฐ๋ณตํ ๊ฐ์ฒด๋ง ๋งํ๋ ๊ฒ์ด ์.. ๋๋ณด๊ธฐ ํ์ด์ฌ์ ์ปจํ ์ด๋ ๊ฐ์ฒด, Container Object in Python ํ์ด์ฌ์ ์๋ฃ๊ตฌ์กฐ์๋ ์ปจํ ์ด๋ ํ์ ๊ฐ์ฒด์ ์ํ์ค ํ์ ๊ฐ์ฒด๊ฐ ์๋ค. ์ปจํ ์ด๋, Container:์ปจํ ์ด๋๋ __contain__ ๋ฉ์๋๊ฐ ๊ตฌํ๋์ด์๋ ๊ฐ์ฒด๋ฅผ ๋งํ๋ค.ํ์ด์ฌ์์๋ ํ ๊ฐ์ฒด(Object)๋ ๋ค์ํ ํด๋์ค๋ฅผ ์์๋ฐ์ ์ ์๋ค.์ปจํ ์ด๋๋ ๊ฐ์ฒด๋ฅผ ๋ง๋๋๋ฐ ์ง์ ๊ด์ฌํ์ง ์๋๋ค. ๊ฐ์ฒด x๊ฐ Containerํ์ ์ธ์ง ์๋์ง๋ type(x) ๋ก๋ ํ์ธํ ์ ์๋ค. issubclass(x,y) ๋ฅผ ์ฌ์ฉํด์ผํ๋ค. Python3from collections import Containeris subclass(X, Container) # Xํด๋์ค๊ฐ Container ํด๋์ค๋ฅผ ์์๋ฐ์๋์ง ํ์ธ. __contain__ ๋ฉ์๋๋ ์ผ๋ฐ์ ์ผ๋ก Boolean ๊ฐ์ ๋ฐํ.__contain__ ๋ฉ์๋๋ ํ์ด์ฌ์์ in ํค์.. ๋๋ณด๊ธฐ Pythonic Code, ํ์ด์ฌ์ค๋ฌ์ด ์ฝ๋ Idiom์ด๋ ํน์ ์์ ์ ์ํํ๊ธฐ ์ํด ์ฝ๋๋ฅผ ์์ฑํ๋ ํน๋ณํ ๋ฐฉ๋ฒ. ๋งค๋ฒ ๋์ผํ ๊ตฌ๋๋ฅผ ๋ฐ๋ณตํด ๋ฐ๋ฅด๋ ๊ฒ์ด ์ผ๋ฐ์ . ๋์์ธ ํจํด์ ๊ณ ์ฐจ์์ ์ธ ๊ฐ๋ ์ผ๋ก ์ฝ๋๋ก ๋ฐ๋ก ๋ณํ๋์ง ์๋ ๋ฐ๋ฉด, idiom์ ํน์ ํ ์์ ์ ํ ๋ ์ฌ์ฉํ๋ ์ค์ ์ฝ๋๋ฅผ ๋งํ๋ค. Idiom์ ์ค์ ์ฝ๋์ด๋ฏ๋ก ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ง๋ค ๋ค๋ฅด๋ค. ํนํ ํ์ด์ฌ์์๋ ํ์ด์ฌ ํน์ ์ idiom์ ๋ฐ๋ฅธ ์ฝ๋๋ฅผ pythonicํ๋ค๊ณ ํ๋ค. index์ slice ์ดํดํ๊ณ indexing ๊ฐ๋ฅํ ๊ฐ์ฒด ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํํ๊ธฐ.Index: numbers[-1] ํ์ด์ฌ์์๋ ๋ค๋ฅธ ์ธ์ด์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ผ๋ถ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ํ์ ์์ ์ธ๋ฑ์ค๋ฅผ ํตํด ์ ๊ทผํ๋ ๊ฒ์ ์ง์ํ๋ค. ํน์ดํ ์ ์ ์์ ์ธ๋ฑ์ค๋ฅผ ํ์ฉํด ๋์์๋ถํฐ ์ ๊ทผ ๋ํ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด๋ค. Slice: numbers.. ๋๋ณด๊ธฐ ์ด์ 1 ๋ค์