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์ด ์ฌ๊ธฐ์ ํด๋นํ๋ค. ๋ด์ฅ ๋ฐ๋ณตํ ๊ฐ์ฒด๋ง ๋งํ๋ ๊ฒ์ด ์๋๋ผ, iterable์ __iter__ ๋งค์ง๋งค์๋๊ฐ ๊ตฌํ๋ ๊ฐ์ฒด. iterater๋ __next__๋งค์ง๋งค์๋๋ก ๊ตฌํ๋ ๊ฐ์ฒด์ด๋ค. |
for element in object: |
__contains__(element) |
์ปจํ ์ด๋ Container : __contains__() ๋งค์๋๊ฐ ๊ตฌํ๋์ด์๋ ๋ฐ๋ณต๊ฐ๋ฅํ ๊ฐ์ฒด iterable Object๋ฅผ ๋งํ๋ค. ๊ฐ์ฒด์ธ dict, set, str ๋ฑ์ด ์ปจํ ์ด๋์ ์ํ๋ค. |
in ํค์๋๊ฐ ๋ฐ๊ฒฌ๋ ๋ ํธ์ถ๋๋ค. element in object: |
__len__() __getitem__() |
์ํ์ค Sequence : ์ปจํ ์ด๋ Container ํ์ ์ค ์์๊ฐ ์๋ ๊ฐ์ฒด์ด๋ค. str์ด ์ฌ๊ธฐ์ ์ํ๋ค. ์ํ์ค๋ __len__๊ณผ __getitem__์ด ๊ตฌํ๋์ด์๊ณ ์ฒซ๋ฒ์จฐ ์ธ๋ฑ์ค 0๋ถํฐ ์์๋์ด ํฌํจ๋ ์์๋ฅผ ํ ๋ฒ์ ํ๋์ฉ ๊ฐ์ ธ์ฌ ์ ์๋ค.
|
for element in object: |
__getattr__() |
๋์ ์์ฑ์กฐํ Dynamic attribute access : |
object.<attribute> |
__call__(*args, *kwarges) |
ํธ์ถํ๊ฐ์ฒด Callable Object : |
object(*args, **kwargs) |