์ธ์คํด์ค ๋ฉ์๋ (Instance Method) ๋?
1. ์ธ์คํด์ค ๋ฉ์๋ (Instance Method) ์ ์
- ํด๋์ค ๋ด๋ถ์์ ์์ฑ๋ ์ธ์คํด์ค ๊ฐ์ฒด์ ์ ๊ทผํ๋ ๋ฉ์๋์ด๋ค
- ํน์ง:
- ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก self๋ฅผ ์ฌ์ฉํ๋ค
- ์ธ์คํด์ค ๋ณ์์ ์ธ์คํด์ค ๋ฉ์๋์ ์ ๊ทผ ๊ฐ๋ฅ
- ๊ฐ์ฒด ๋ณ๋ก ๋ค๋ฅธ ๋์์ ์ํํ ์ ์์
- ์ฌ์ฉ ์์: ์ธ์คํด์ค ๋ณ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ฑฐ๋ ์ํ๋ฅผ ๋ณ๊ฒฝํด์ผ ํ ๋ ์ฌ์ฉํ๋ค
class MyClass:
def __init__(self, value):
self.value = value
def instance_method(self):
return f"Instance value is {self.value}"
obj = MyClass(10)
print(obj.instance_method()) # ์ถ๋ ฅ: "Instance value is 10"
ํด๋์ค ๋ฉ์๋ (Class Method) ๋?
2. ํด๋์ค ๋ฉ์๋ (Class Method) ์ ์
- ํด๋์ค ์์ฒด์ ๋ํด ๋์ํ๋ ๋ฉ์๋์
- ํน์ง:
- ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก cls๋ฅผ ์ฌ์ฉํจ
- ํด๋์ค ๋ณ์์ ํด๋์ค ๋ฉ์๋์ ์ ๊ทผ ๊ฐ๋ฅํจ
- ํด๋์ค ๋ ๋ฒจ์์ ๋์ํ๋ฉฐ, ํด๋์ค์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ์ ์ฉํ๋ค
- ๋ฐ์ฝ๋ ์ดํฐ: @classmethod๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ํจ
- ์ฌ์ฉ ์์: ํด๋์ค ๋ ๋ฒจ์ ๋ฐ์ดํฐ๋ ์ํ๋ฅผ ์ฒ๋ฆฌํ๊ฑฐ๋, ํฉํ ๋ฆฌ ๋ฉ์๋(์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๋ฉ์๋)๋ก ์ฌ์ฉ
class MyClass:
class_variable = "Hello"
@classmethod
def class_method(cls):
return f"Class variable is {cls.class_variable}"
print(MyClass.class_method()) # ์ถ๋ ฅ: "Class variable is Hello"
์ ์ ๋ฉ์๋ (Static Method) ๋?
3. ์ ์ ๋ฉ์๋ (Static Method) ์ ์
- ํด๋์ค์ ์ธ์คํด์ค์ ๋ ๋ฆฝ์ ์ธ ๋ฉ์๋์ด๋ค
- ํน์ง:
- ํด๋์ค๋ ์ธ์คํด์ค์ ๊ด๋ จ ์๋ ๋ก์ง์ ๊ตฌํํจ
- self๋ cls ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์์
- ์ํ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ํด๋์ค ์์ฑ์ ์ ๊ทผํ์ง ์์
- ์ ํธ๋ฆฌํฐ ํจ์์ฒ๋ผ ๋์ํ๋ค
- ๋ฐ์ฝ๋ ์ดํฐ: @staticmethod๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ํจ
- ์ฌ์ฉ ์์: ํด๋์ค๋ ์ธ์คํด์ค์ ๋ฌด๊ดํ ๋ ๋ฆฝ์ ์ธ ๋ก์ง(์: ๊ณ์ฐ, ์ ํธ๋ฆฌํฐ ํจ์ ๋ฑ)์ด ํ์ํ ๋ ์ฌ์ฉํจ
class MyClass:
@staticmethod
def static_method(x, y):
return x + y
print(MyClass.static_method(3, 5)) # ์ถ๋ ฅ: 8
๊ฐ ๋ฉ์๋ ๋ณ ์ฐจ์ด์ ๋น๊ต
ํน์ง | ์ธ์คํด์ค ๋ฉ์๋ | ํด๋์ค ๋ฉ์๋ | ์ ์ ๋ฉ์๋ |
์ ๊ทผ ๋์ | ์ธ์คํด์ค ๋ณ์ ๋ฐ ๋ฉ์๋ | ํด๋์ค ๋ณ์ ๋ฐ ํด๋์ค ๋ฉ์๋ | ํด๋์ค์ ์ธ์คํด์ค์ ๋ ๋ฆฝ์ |
์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์ | self | cls | X |
๋ฐ์ฝ๋ ์ดํฐ | X | @classmethod | @staticmethod |
์ฌ์ฉ ๋ชฉ์ | ์ธ์คํด์ค์ ์ํ์ ๋์์ ์ ์ | ํด๋์ค ๋ ๋ฒจ์์ ๋์ ์ํ | ๋ ๋ฆฝ์ ์ธ ๋ก์ง ๊ตฌํ |
์ํ ๋ณ๊ฒฝ ์ฌ๋ถ | ๊ฐ๋ฅ (์ธ์คํด์ค ์ํ ๋ณ๊ฒฝ) | ๊ฐ๋ฅ (ํด๋์ค ์ํ ๋ณ๊ฒฝ) | ๋ถ๊ฐ๋ฅ (์ํ ๋ณ๊ฒฝ ์์) |
ํธ์ถ ๋ฐฉ๋ฒ | ์ธ์คํด์ค๋ฅผ ํตํด ํธ์ถ | ํด๋์ค ๋๋ ์ธ์คํด์ค๋ฅผ ํตํด ํธ์ถ | ํด๋์ค ๋๋ ์ธ์คํด์ค๋ฅผ ํตํด ํธ์ถ |
+)
๊ทธ๋ ๋ค๊ณ ํฉ๋๋ค^,^
'[SPARTA] AI 9 (24.11 ~ 25.03) ๐๐ปโโ๏ธ > Python ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[250106] count() ์ Counter() ์ ์ฐจ์ด์ (0) | 2025.01.06 |
---|---|
[250103] ๋ฐ์ฝ๋ ์ดํฐ๋? (0) | 2025.01.03 |
[241227] sqrt() ์ pow() ๊ฐ๋ ์ ๋ฆฌ (2) | 2024.12.27 |
[241224] map() ๊ณผ lambda ํจ์ (0) | 2024.12.24 |
[241223] ํ์ด์ฌ try - except ๊ตฌ๋ฌธ ์ ๋ฆฌ (0) | 2024.12.23 |