Python class 예제

μƒ€μ›Œμ‹€μ˜ 바보·2025λ…„ 2μ›” 5일
0

Python

λͺ©λ‘ 보기
8/10
class Dog:
    def __init__(self, name, age, breed):
        self.name = name
        self.age = age
        self.breed = breed

    def introduce(self):
        return f"Hello, my name is {self.name} and I am a {self.breed}."


class Puppy(Dog):
    def __init__(self, name, breed, color):
        super().__init__(name, 0.1, breed)
        self.color = color

    def introduce(self):
        return f"{super().introduce()} I am {self.color}."

poppi = Puppy(
    name="Poppi", 
    breed="Poodle", 
    color="White",
)

print(poppi.introduce())

🐢 Python 클래슀 상속 예제 상세 μ„€λͺ…

이 μ½”λ“œλŠ” 클래슀 상속(Inheritance)을 μ‚¬μš©ν•˜μ—¬ Dog 클래슀λ₯Ό λΆ€λͺ¨ 클래슀둜 ν•˜κ³ , Puppy 클래슀λ₯Ό μƒμ†ν•˜μ—¬ 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°(OOP) κ°œλ…μ„ μ μš©ν•œ μ˜ˆμ œμž…λ‹ˆλ‹€.

βœ… 1️⃣ Dog 클래슀 (λΆ€λͺ¨ 클래슀)

class Dog:
    def __init__(self, name, age, breed):
        self.name = name
        self.age = age
        self.breed = breed

    def introduce(self):
        return f"Hello, my name is {self.name} and I am a {self.breed}."

πŸ”Ή Dog 클래슀의 μ—­ν• 

β€’ 클래슀 속성(Attributes)

β€’ self.name β†’ 개의 이름

β€’ self.age β†’ 개의 λ‚˜μ΄

β€’ self.breed β†’ 개의 ν’ˆμ’…

β€’ 클래슀 λ©”μ„œλ“œ(Methods)

β€’ introduce(self) β†’

개의 이름과 ν’ˆμ’…μ„ λ°˜ν™˜ν•˜λŠ” λ¬Έμžμ—΄μ„ 생성

예제 μ‹€ν–‰ μ‹œ: "Hello, my name is Poppi and I am a Poodle."

βœ… 2️⃣ Puppy 클래슀 (μžμ‹ 클래슀)

class Puppy(Dog):
    def __init__(self, name, breed, color):
        super().__init__(name, 0.1, breed)
        self.color = color

    def introduce(self):
        return f"{super().introduce()} I am {self.color}."

πŸ”Ή Puppy 클래슀의 μ—­ν• 

β€’ Dog 클래슀λ₯Ό 상속받아 μƒˆλ‘œμš΄ 속성(color)을 μΆ”κ°€ν•˜κ³ , introduce() λ©”μ„œλ“œλ₯Ό μ˜€λ²„λΌμ΄λ”©(Override).

β€’ 클래슀 속성(Attributes)

β€’ name β†’ κ°•μ•„μ§€ 이름

β€’ age β†’ 항상 0.1 (μ–΄λ¦° κ°•μ•„μ§€μ΄λ―€λ‘œ λ‚˜μ΄λ₯Ό κ³ μ •)

β€’ breed β†’ κ°•μ•„μ§€ ν’ˆμ’…

β€’ color β†’ κ°•μ•„μ§€ 색깔

β€’ λ©”μ„œλ“œ(Method)

β€’ super().init(name, 0.1, breed)

β†’ λΆ€λͺ¨ 클래슀(Dog)의 init()을 ν˜ΈμΆœν•˜μ—¬ name, age, breedλ₯Ό μ΄ˆκΈ°ν™”.

β€’ introduce(self) μ˜€λ²„λΌμ΄λ”©

β€’ λΆ€λͺ¨ 클래슀의 introduce()λ₯Ό ν˜ΈμΆœν•˜μ—¬ κΈ°λ³Έ 정보(name, breed)λ₯Ό κ°€μ Έμ˜΄.

β€’ "I am {self.color}."λ₯Ό μΆ”κ°€ν•˜μ—¬ 색깔도 ν¬ν•¨λœ λ¬Έμžμ—΄μ„ λ°˜ν™˜.

βœ… 3️⃣ 객체 생성 및 μ‹€ν–‰

poppi = Puppy(
    name="Poppi",
    breed="Poodle",
    color="White",
)

πŸ“Œ 객체 생성 κ³Όμ •

  1. name = "Poppi", breed = "Poodle", color = "White" μ„€μ •.

  2. λΆ€λͺ¨ 클래슀 Dog의 init()을 ν˜ΈμΆœν•˜μ—¬

β€’ self.name = "Poppi"

β€’ self.age = 0.1 (κ°•μ•„μ§€λŠ” λ‚˜μ΄λ₯Ό 0.1둜 κ³ μ •)

β€’ self.breed = "Poodle"

  1. self.color = "White" (κ°•μ•„μ§€ 색깔 μ„€μ •).

βœ… 4️⃣ introduce() μ‹€ν–‰

print(poppi.introduce())

πŸ“Œ μ‹€ν–‰ 흐름

  1. poppi.introduce() 호좜 β†’ Puppy 클래슀의 introduce() μ‹€ν–‰.

  2. super().introduce() μ‹€ν–‰ β†’ λΆ€λͺ¨ 클래슀(Dog)의 introduce() μ‹€ν–‰

β€’ κ²°κ³Ό: "Hello, my name is Poppi and I am a Poodle."

  1. "I am White." λ¬Έμžμ—΄μ΄ 좔가됨.

πŸ“Œ 좜λ ₯ κ²°κ³Ό

Hello, my name is Poppi and I am a Poodle. I am White.

🎯 μ΅œμ’… 정리

ν΄λž˜μŠ€μ„€λͺ…
Dog (λΆ€λͺ¨ 클래슀)name, age, breed 속성을 κ°€μ§€λ©° introduce() λ©”μ„œλ“œ 제곡
Puppy (μžμ‹ 클래슀)Dog을 μƒμ†ν•˜μ—¬ color 속성을 μΆ”κ°€ν•˜κ³  introduce()λ₯Ό μ˜€λ²„λΌμ΄λ”©
객체 생성poppi = Puppy(name="Poppi", breed="Poodle", color="White")
좜λ ₯ κ²°κ³Ό"Hello, my name is Poppi and I am a Poodle. I am White."
profile
κ³΅λΆ€ν•˜λŠ” 개발자

0개의 λŒ“κΈ€