[python] class์ def __init__(self) ์ดํดํ๊ธฐ
220907 ์์ฑ
<๋ณธ ๋ธ๋ก๊ทธ๋ engineer-mole ๋์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-) >
https://engineer-mole.tistory.com/190
[python] python์ self์ __init__์ ์ดํด
โป ์ผ๋ณธ์ ํ ํฌ์คํ ์ ๋ฒ์ญํ ๊ธ์ ๋๋ค. ์ค์ญ ๋ฐ ์ง์ญ์ด ์์ ์ ์์ผ๋ฉฐ, ๋ด์ฉ ์ค๋ฅ๋ ๋๊ธ๋ก ์ง์ ํด์ฃผ์ฌ ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. Python์ ํด๋์ค์ ๋ํ ์ดํด ๋ค๋ฅธ ์ธ์ด์ ๋์ผํ๊ฒ python์์๋ ํด๋์ค
engineer-mole.tistory.com
๐ ํด๋์ค (class)
- ๊ฐ์ฒด์ ๊ตฌ์กฐ์ ํ๋
- ๊ฐ์ฒด(object)๋ฅผ ํํํ๊ธฐ ์ํ ๋ฌธ๋ฒ
- ์ด๋ค ์ฌ๋ฌผ์ด๋ ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ถ์ํ๋ฅผ ๊ฑฐ์ณ ๋ง๋ ํ
- ์์ฑํ๊ณ ์ ํ๋ ๊ฐ์ฒด์ ์์ฑ ๋ฑ์ ๋ฉค๋ฒ ๋ณ์๋ก ํด๋น ๊ฐ์ฒด๊ฐ ๊ฐ์ง ๊ธฐ๋ฅ์ ๋ฉค๋ฒ ํจ์(๋ฉ์๋)๋ก ๊ตฌํ
class ํด๋์ค๋ช
<(์์ ํด๋์ค๋ช
...)>:
๋ฉค๋ฒ๋ณ์ = ๊ฐ # ํด๋์ค ๋ณ์
...
def __init__(self): # ์์ฑ์
...
def ๋ฉ์๋๋ช
(self): # ๋ฉ์๋
...
- ์ธ์คํด์ค ์์ฑ์ ๋ง๋ค ๋๋ __init__ ๋ฉ์๋ ์์์ self.์์ฑ์ ๊ฐ์ ํ ๋น
- self๋ ์ธ์คํด์ค ์๊ธฐ ์์ ( = ๊ฐ์ฒด ์๊ธฐ ์์ ์ ์ฐธ์กฐํ๋ ๋งค๊ฐ๋ณ์ )
- ์ ์ ๋ฉ์๋์ ํด๋์ค ๋ฉ์๋๋ ์ธ์คํด์ค๋ฅผ ํตํ์ง ์๊ณ ํด๋์ค์์ ๋ฐ๋ก ํธ์ถํ ์ ์๋ ๋ฉ์๋
- ๋ฉ์๋(method) : ํด๋์ค ๋ด์์ ์ ์ธ๋ ํจ์
๐ ์ธ์คํด์ค(instance), ๊ฐ์ฒด(Object)
- ๊ฐ์ฒด๋ง ์ง์นญํ ๋๋ ๊ทธ๋ฅ ๊ฐ์ฒด(object)
- ํด๋์ค์ ์ฐ๊ด ์ง์ด์ ๋งํ ๋๋ ์ธ์คํด์ค(instance)
๐ ์์ฑ์ (constructor)
- ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ํด๋น ๊ฐ์ฒด์ ๋ฉค๋ฒ ๋ณ์๋ฑ ์ด๊ธฐํ๊ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ์ด๊ธฐํ
- ๋ฉค๋ฒํจ์์ ์ด๋ฆ์ __init__ ์ผ๋ก ํ๋ฉด ํด๋น ๋ฉค๋ฒ ํจ์๋ ์์ฑ์์ ์ญํ
def __init__(self, ๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2, ..):
self.๋ฉค๋ฒ๋ณ์ = ๋งค๊ฐ๋ณ์1
...
๐ ์์ (inheritance)
- ํด๋์ค์ ์์์ ํํํ ๋ ์์ํ๋ ํด๋์ค๋ฅผ ๋ถ๋ชจ ํด๋์ค ์์๋ฐ๋ ํด๋์ค๋ฅผ ์์ ํด๋์ค
class ์์ ํด๋์ค๋ช
(๋ถ๋ชจ ํด๋์ค๋ช
):
- ๋ค์ค ์์(multiple inheritance)
- 2๊ฐ ์ด์์ ํด๋์ค๋ฅผ ์์๋ฐ๋ ๊ฒ
class ์์ ํด๋์ค๋ช
(๋ถ๋ชจ ํด๋์ค1, ๋ถ๋ชจ ํด๋์ค2, ..):
๋ฉค๋ฒ
๐ ์ค๋ฒ ๋ผ์ด๋ฉ(overriding)
- ๊ธฐ์กด์ ๊ฐ์ ์ด๋ฆ์ ํจ์๋ฅผ ๊ทธ๋๋ก ๋ฎ์ด์
- super() ํค์๋๋์์ ํด๋์ค์์ ๋ถ๋ชจ ํด๋์ค๋ฅผ ์ฐธ์กฐํ์ฌ ๋ฉ์๋ ์ด๋ฆ์ ๊ฐ์ง๊ณ ๋ถ๋ชจ ํด๋์ค์ ๋ฉ์๋๋ฅผ ์ฌ์ฉ
๐ ์์ฑ(attribute)
- ํด๋์ค์ ๋ด๋ถ ๋ณ์