[ ํด๋์ค ]
- ์บ๋ฆญํฐ๋ค์ด ๊ฐ์ ธ์ผ ํ ๊ณตํต ํน์ฑ๊ณผ ๊ธฐ๋ฅ์ ๋ชจ์ ๋์ ๊ฒ
- ๊ฐ์ ์ข ๋ฅ์ ๊ฐ์ฒด ์์ฑ์ ์ํด ์ ์๋๋ ํ(ํ์)
· ๊ฐ์ฒด(Object) : ๋ฐ์ดํฐ + ์๊ณ ๋ฆฌ์ฆ
· ์์ฑ(Attribute) : ํด๋์ค์ ํน์ฑ์ ์ ์ฅ, ๋ณ์ ์ญํ
· ๋ฉ์๋(method) : ํด๋์ค์ ๊ธฐ๋ฅ ํํ, ํจ์ ์ญํ
** ๊ฐ์ฒด์งํฅ ์ธ์ด - ์ฐ๊ด๋ ๋ฐ์ดํฐ์ ํจ์๋ฅผ ๊ฐ์ฒด๋ก ๋ชจ๋ํ ใ ก> ์ฝ๋๋ฅผ ๋ช ํํ๊ณ ์ฝ๊ฒ ์์ฑ๊ฐ๋ฅ
ใ ก ํด๋์ค ์ ์ ์ (Circle)
- # class ์ ์, main
- ์ถ๋ ฅ - f' string์ผ๋ก ์ถ๋ ฅ
**๋ฉ์๋ ํธ์ถ์ ๊ฐ ๊ฐ์ฒด(Object)์ ์์ด๋๊ฐ self๋ก ์ ๋ฌ
[ ์์ฑ์ ]
- ์์ฑ์
- ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ๋ฑ ํ๋ฒ ์๋์ผ๋ก ํธ์ถํ๋ ๋ฉ์๋
- ์ด๊ธฐํ ํ๋ ์ญํ
- ๋ช ์์ ์ผ๋ก ๋ฐ๋ก ํธ์ถ์ X
- ๊ตฌํ
- __init__() ์ธ ๋ฉ์๋
- ๋ณ๋์ ๋ฐํ๊ฐ ( return value) X
- ๋ฉ์๋์ด๋ฏ๋ก self ๋งค๊ฐ๋ณ์ ๊ฐ์ง
- ํ์ํ ๊ฒฝ์ฐ, ์ค์ ๊ฐ ์ ๋ฌ๋ฐ๊ธฐ ์ํด ์ถ๊ฐ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ง ์ ์์
ใ ก ์์ฑ์(Constructor) ์ ์ฉ ํด๋์ค
- # def __init__(self, radius):
- self.radius = radius
- Circle(๊ฐ ๋ฃ๊ธฐ)
- ์ ์ฌ์ฉํ ๊น?
- ์ธ๋ถ์ ๊ฐ์ฒด ์์ฑ ์ ๊ทผ ํผํ ์ ์๋ค
- ์ด๊ธฐํ ๊ณผ์ ๋๋ฝ์ผ๋ก ์ด๊ธฐํ ์๋ ๊ฐ์ฒด๊ฐ ์๋ค
- ๊ฐ์ฒด ์ฌ์ฉ ์ค ๋ถํ์ํ ์์ ์ ๊ฐ์ฒด๊ฐ ์ด๊ธฐํ๋๋ ๋ฌธ์ X
- ๋จ์ ํ ๋น๋ฌธ์ด ์๋๋ผ ๋ฉ์๋๋ฅผ ํตํด ์ด๊ธฐํ ์์ ํ ์ ์์, ํ์ํ ๊ฒฝ์ฐ ์ด๊ธฐ๊ฐ ์ ํจ์ฑ ํ์ธ ใ ก> ์์ ํ ์ด๊ธฐํ ๊ฐ๋ฅ
ใ ก ๋น๊ณต๊ฐ ์์ฑ ํด๋์ค (class)
- __
ใ ก ์ ์ (static) ๋ฉ์๋ / ํด๋์ค ๋ฉ์๋
- ์ ์ ๋ฉ์๋ : @staticmethod
- ๋์ ๋ฉ์๋ : @classmethod (๋ฐ์ฝ๋ ์ดํฐ ์ถ๊ฐํ์ฌ ํ์ฉ)
- ๊ฐ์ฒด์ ๋ฌด๊ดํ๊ฒ ์ ๊ทผํด์ ์ฌ์ฉํ ์ ์๋ ๋ฉ์๋
- ๊ฐ์ฒด ์์ฑ ์ ์๋ ํธ์ถ O, ๋งค๊ฐ๋ณ์ self X
- ๋ฉ์๋ ์ ์ธ ์์ ๋ฐ์ฝ๋ ์ดํฐ(decorator)๋ฅผ ์ถ๊ฐํ์ฌ ์ ์ธ