π Python ν΄λμ€μμ init()μ μλ΅νλ κ²½μ°
init()μ Pythonμμ κ°μ²΄(μΈμ€ν΄μ€)λ₯Ό μ΄κΈ°ννλ νΉλ³ν λ©μλ(μμ±μ)μ λλ€.
νμ§λ§ λͺ¨λ ν΄λμ€μμ λ°λμ init()μ μ μν νμλ μμ΅λλ€.
μλμ κ°μ κ²½μ° init()μ μλ΅ν μ μμ΅λλ€.
β 1οΈβ£ init()μ΄ νμ μλ κ²½μ°
β ν΄λμ€κ° νΉλ³ν μ΄κΈ°ν μμ΄ λμν κ²½μ°
init()μ μλ΅νλ©΄ Pythonμ κΈ°λ³Έμ μΌλ‘ λΉ μμ±μ(κΈ°λ³Έ μμ±μ)λ₯Ό μλμΌλ‘ μ 곡ν©λλ€.
π μμ : init() μμ΄ κ°λ¨ν ν΄λμ€
class HelloWorld:
def greet(self):
return "Hello, World!"
# κ°μ²΄ μμ±
hw = HelloWorld()
print(hw.greet()) # Hello, World!
β init()μ μ μνμ§ μμμ§λ§, HelloWorld() κ°μ²΄λ₯Ό μ μμ μΌλ‘ μμ±ν μ μμ.
β ν΄λμ€ λ΄λΆμ μν(μΈμ€ν΄μ€ λ³μ)λ₯Ό μ μ₯νμ§ μλ κ²½μ°
κ°μ²΄κ° μμ±(self.attribute)μ κ°μ§ νμ μμ΄, λ¨μν λ©μλλ§ μ 곡νλ κ²½μ° init()μ΄ λΆνμν©λλ€.
π μμ : μνκ° μλ ν΄λμ€
class MathOperations:
@staticmethod
def add(a, b):
return a + b
# κ°μ²΄ μμ±
math_ops = MathOperations()
print(math_ops.add(3, 5)) # 8
β μ΄ ν΄λμ€λ μνλ₯Ό μ μ₯νμ§ μμΌλ―λ‘ init() μμ΄λ μ μ μλν¨.
β ν΄λμ€λ₯Ό λ¨μν λ€μμ€νμ΄μ€λ‘ μ¬μ©ν κ²½μ°
ν΄λμ€κ° λ¨μν κ΄λ ¨ ν¨μμ μμλ₯Ό κ·Έλ£Ήννλ μν λ§ νλ€λ©΄ init()μ΄ νμ μμ΅λλ€.
π μμ : μμλ₯Ό ν¬ν¨ν μ νΈλ¦¬ν° ν΄λμ€
class Constants:
PI = 3.14159
GRAVITY = 9.8
print(Constants.PI) # 3.14159
print(Constants.GRAVITY) # 9.8
β Constants ν΄λμ€λ λ¨μν μμλ₯Ό μ μ₯νλ μν λ§ νλ―λ‘ init()μ΄ νμ μμ.
β 2οΈβ£ init()μ μλ΅ν μ μμ§λ§, μ¬μ©νλ©΄ λ μ’μ κ²½μ°
β ν΄λμ€μ μ μ λ©μλ(@staticmethod)λ ν΄λμ€ λ©μλ(@classmethod)λ§ ν¬ν¨ν κ²½μ°
ν΄λμ€ λ΄λΆμ μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©νμ§ μκ³ , ν΄λμ€ μ체μμ 곡μ©μΌλ‘ μ¬μ©νλ λ©μλλ§ ν¬ν¨ν κ²½μ° init()μ μλ΅ν μ μμ΅λλ€.
π μμ : μ μ λ©μλλ§ μλ ν΄λμ€
class Utility:
@staticmethod
def greet(name):
return f"Hello, {name}!"
# κ°μ²΄ μμ΄ λ©μλ νΈμΆ κ°λ₯
print(Utility.greet("Alice")) # Hello, Alice!
β μ΄ ν΄λμ€λ κ°μ²΄λ₯Ό μμ±ν νμ μμ΄ Utility.greet()λ₯Ό μ§μ νΈμΆν μ μμ.
β 3οΈβ£ init()μ μλ΅νλ©΄ μ λλ κ²½μ°
λ€μκ³Ό κ°μ κ²½μ°μλ init()μ΄ νμν©λλ€.
β ν΄λμ€κ° μΈμ€ν΄μ€ λ³μλ₯Ό μ΄κΈ°νν΄μΌ νλ κ²½μ°
class Person:
def __init__(self, name, age): # μΈμ€ν΄μ€ λ³μλ₯Ό μ΄κΈ°ννλ μμ±μ
self.name = name
self.age = age
def introduce(self):
return f"My name is {self.name}, and I'm {self.age} years old."
p = Person("Alice", 25)
print(p.introduce())
β self.nameκ³Ό self.ageλ₯Ό μ μ₯ν΄μΌ νλ―λ‘ init()μ΄ νμν¨.
π― κ²°λ‘
μν© | init() μλ΅ κ°λ₯ μ¬λΆ | μ€λͺ |
---|---|---|
λ©μλλ§ ν¬ν¨λ ν΄λμ€ | β κ°λ₯ | μΈμ€ν΄μ€ λ³μκ° νμ μμ λ |
μμλ§ μ μ₯νλ ν΄λμ€ | β κ°λ₯ | λ€μμ€νμ΄μ€ μν λ§ ν λ |
μ μ λ©μλλ§ μλ ν΄λμ€ | β κ°λ₯ | @staticmethodλ₯Ό μ¬μ©ν λ |
μΈμ€ν΄μ€ λ³μλ₯Ό μ΄κΈ°νν΄μΌ νλ κ²½μ° | β λΆκ°λ₯ | κ°μ²΄λ³ μνλ₯Ό μ μ₯ν΄μΌ ν λ |
λ°λΌμ, ν΄λμ€κ° μΈμ€ν΄μ€ λ³μ μμ΄ λ¨μν κΈ°λ₯ μ κ³΅λ§ νλ©΄ init()μ μλ΅ν μ μμ΅λλ€! π