d = Dog("Buddy")
d.bark() # Output: Buddy says woof!
1. ν΄λμ€μ μ μ
ν΄λμ€λ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μμ μ½λμ μ¬μ¬μ©μ±μ λμ΄κΈ° μν ꡬ쑰μ΄λ€. ν΄λμ€λ νΉμ κΈ°λ₯μ κ°μ§ λ°μ΄ν°μ ν¨μλ₯Ό ν¬ν¨νλ©°, μλ‘μ΄ κ°μ²΄λ₯Ό μμ±νλ νλ‘ νμ©λλ€. Pythonμμ ν΄λμ€λ class ν€μλλ₯Ό μ¬μ©ν΄ μ μν μ μλ€.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Hello, {self.name}!")
Person ν΄λμ€λ μ΄λ¦κ³Ό λμ΄λ₯Ό μμ±μΌλ‘ κ°μ§λ©°, greet λ©μλλ₯Ό ν΅ν΄ μΈμ¬λ§μ μΆλ ₯ν μ μλ€. κ°μ²΄λ ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ μμ±λλ©°, μ΄λ₯Ό ν΅ν΄ ν΄λμ€λ₯Ό νΈμΆνμ¬ μλ‘μ΄ μΈμ€ν΄μ€λ₯Ό λ§λ€ μ μλ€.
* selfλ Pythonμμ ν΄λμ€ μΈμ€ν΄μ€ μμ μ μ°Έμ‘°νκΈ° μν νΉλ³ν λ³μλ€. ν΄λμ€μ λ©μλλ₯Ό μ μν λ νμ 첫 λ²μ§Έ 맀κ°λ³μλ‘ selfλ₯Ό μ μ΄μΌ νλ©°, μ΄λ₯Ό ν΅ν΄ ν΄λΉ μΈμ€ν΄μ€μ μμ±μ΄λ λ©μλμ μ κ·Όν μ μλ€. JavaScriptμμλ μΌλ°μ μΌλ‘ thisλ₯Ό ν΅ν΄ κ°μ²΄ λ΄λΆμ νλ‘νΌν°μ μ κ·Όνλλ°, Pythonμμλ selfλ₯Ό λͺ μμ μΌλ‘ μ λ¬ν΄μΌ νλ€.
p = Person("Cheolsu", 20)
p.greet() # Output: Hello, Cheolsu!
2. __init__ λ©μλ (Initializer)
__init__ λ©μλλ ν΄λμ€λ‘λΆν° μμ±λ κ°μ²΄μ μ΄κΈ°κ°μ μ€μ νλ νΉλ³ν λ©μλμ΄λ€. κ°μ²΄ μμ± μ μλμΌλ‘ νΈμΆλλ©°, μμ±μ μ΄κΈ°ννλ€. μ¬κΈ°μ 첫 λ²μ§Έ 맀κ°λ³μ selfλ ν΄λΉ μΈμ€ν΄μ€λ₯Ό λνλ΄λ©°, Python ν΄λμ€ λ©μλμμ νμ 첫 λ²μ§Έ 맀κ°λ³μλ‘ μ¬μ©λλ€.
class Animal:
def __init__(self, species, sound):
self.species = species
self.sound = sound
def make_sound(self):
print(f"{self.species} makes {self.sound}")
a = Animal("Cat", "meow")
a.make_sound() # Output: Cat makes meow
3. ν΄λμ€ μμ±κ³Ό μΈμ€ν΄μ€ μμ±
ν΄λμ€ μμ±μ ν΄λμ€ μ체μ μνλ λ°λ©΄, μΈμ€ν΄μ€ μμ±μ νΉμ μΈμ€ν΄μ€μ μνλ€. ν΄λμ€ μμ±μ λͺ¨λ μΈμ€ν΄μ€μμ 곡μ λλ©°, κ°μ²΄λ₯Ό μμ±νμ§ μκ³ ν΄λμ€λͺ μΌλ‘ μ κ·Όν μ μλ€.
class Car:
wheels = 4 # ν΄λμ€ μμ±
def __init__(self, color):
self.color = color # μΈμ€ν΄μ€ μμ±
print(Car.wheels) # Output: 4
car1 = Car("Red")
print(car1.color) # Output: Red
4. λ©μλ(Method)
ν΄λμ€ λ΄λΆμμ μ μλ ν¨μλ λ©μλλΌ λΆλ¦¬λ©°, κ°μ²΄μ λμμ μ μνλ€. λ©μλλ κ°μ²΄λ₯Ό ν΅ν΄ νΈμΆλλ©°, λ©μλ λ΄λΆμμ μΈμ€ν΄μ€ μμ±μ μ κ·Όν μ μλ€.
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
print(f"{self.name} says woof!")
5. μμ(Inheritance)
μμμ κΈ°μ‘΄ ν΄λμ€λ₯Ό νμ₯νμ¬ μλ‘μ΄ ν΄λμ€λ₯Ό λ§λλ λ°©λ²μ΄λ€. μμμ ν΅ν΄ μ½λ μ€λ³΅μ μ€μΌ μ μμΌλ©°, μμ ν΄λμ€μ μμ±κ³Ό λ©μλλ₯Ό νμ ν΄λμ€κ° λ¬Όλ €λ°λλ€.
class Animal:
def __init__(self, species):
self.species = species
def speak(self):
return "Sound"
class Dog(Animal):
def speak(self):
return "Bark"
d = Dog("Dog")
print(d.speak()) # Output: Bark
6. super() ν¨μ
νμ ν΄λμ€μμ μμ ν΄λμ€μ λ©μλλ₯Ό νΈμΆν λ super() ν¨μλ₯Ό μ¬μ©νλ€. μ΄λ₯Ό ν΅ν΄ μμ ν΄λμ€μ κΈ°λ₯μ νμ₯ν μ μλ€.
class Bird(Animal):
def __init__(self, species, can_fly):
super().__init__(species)
self.can_fly = can_fly
7. λ§€μ§ λ©μλ (Magic Method)
λ§€μ§ λ©μλλ νΉλ³ν κΈ°λ₯μ μννλ λ©μλλ‘, λ μΈλμ€μ½μ΄(__
)λ‘ μμνκ³ λλλ λ©μλλ€. μλ₯Ό λ€μ΄, __str__
μ κ°μ²΄λ₯Ό λ¬Έμμ΄λ‘ ννν λ μ¬μ©λλ©°, __len__
μ κ°μ²΄μ κΈΈμ΄λ₯Ό λ°ννλ λ° μ¬μ©λλ€.
class Book:
def __init__(self, title, pages):
self.title = title
self.pages = pages
def __str__(self):
return f"{self.title} ({self.pages} pages)"
b = Book("Python Basics", 250)
print(b) # Output: Python Basics (250 pages)
8. ν΄λμ€μ μΈμ€ν΄μ€ λ©μλ
ν΄λμ€ λ©μλλ @classmethod
λ°μ½λ μ΄ν°λ‘ μ μνλ©°, ν΄λμ€ μ체μ λν λμμ μννλ€. λ°λ©΄, μΈμ€ν΄μ€ λ©μλλ νΉμ μΈμ€ν΄μ€μ λν λμμ μννλ€.
class MyClass:
@classmethod
def class_method(cls):
print("Class method called")
9. μ μ λ©μλ (Static Method)
μ μ λ©μλλ νΉμ μΈμ€ν΄μ€λ ν΄λμ€μ μμ‘΄νμ§ μλ λ©μλμ΄λ€. @staticmethod λ°μ½λ μ΄ν°λ₯Ό μ¬μ©ν΄ μ μνλ©°, λ 립μ μΌλ‘ λμνλ ν¨μλ₯Ό ν΄λμ€ λ΄λΆμ μ μν μ μλ€.
class Math:
@staticmethod
def add(a, b):
return a + b
print(Math.add(3, 5)) # Output: 8
10. κ°μ²΄μ§ν₯μ νΉμ§: μΊ‘μν, μμ, λ€νμ±
- μΊ‘μνλ κ°μ²΄μ μΈλΆ ꡬνμ κ°μΆκ³ , μΈλΆμλ μΈν°νμ΄μ€λ§ μ 곡νλ λ°©μμ΄λ€. μ΄λ₯Ό ν΅ν΄ μΈλΆμμλ κ°μ²΄ λ΄λΆμ 볡μ‘ν λ‘μ§μ μ νμ μμ΄ νμν μ 보μλ§ μ κ·Όν μ μλ€.
- μμμ κΈ°μ‘΄ ν΄λμ€μ μμ±κ³Ό λ©μλλ₯Ό μλ‘μ΄ ν΄λμ€κ° λ¬Όλ €λ°μ μ¬μ¬μ©ν μ μκ² νλ€. μ½λμ μ€λ³΅μ μ€μ΄κ³ μ μ§λ³΄μλ₯Ό μ©μ΄νκ² νλ€.
- λ€νμ±μ λμΌν μΈν°νμ΄μ€λ₯Ό μ¬μ©νμ¬ λ€λ₯Έ λμμ μνν μ μκ² νλ νΉμ§μ΄λ€. μλ₯Ό λ€μ΄, μ¬λ¬ ν΄λμ€κ° κ°μ μ΄λ¦μ λ©μλλ₯Ό κ°μ§κ³ μμ΄λ κ° ν΄λμ€μ λμμ λ§κ² μ¬μ©ν μ μλ€.
'π©βπ» hello, world! > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νμ΄μ¬ κΈ°μ΄ 06 - μμΈ μ²λ¦¬ (0) | 2024.11.02 |
---|---|
νμ΄μ¬ κΈ°μ΄ 05 - λͺ¨λ, ν¨ν€μ§ (1) | 2024.11.01 |
νμ΄μ¬ κΈ°μ΄ 03 - ν¨μ (0) | 2024.10.18 |
νμ΄μ¬ κΈ°μ΄ 02 - μ μ΄λ¬Έ(ifλ¬Έ / forλ¬Έ/ whileλ¬Έ) (0) | 2024.10.17 |
νμ΄μ¬ κΈ°μ΄ 01 - μλ£ν(λ°μ΄ν° νμ ) (0) | 2024.10.17 |