ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 예시로 배우는 파이썬 (CLASS)
    PYTHON(파이썬)/파이썬 기초 2024. 10. 17. 05:13
    728x90
    반응형

    ePython-19.py
    0.00MB
    ePython-18.py
    0.00MB
    ePython-17.py
    0.00MB

    Goover는?

    파이썬의 클래스(Class)에 대한 설명을 드리겠습니다. 클래스는 객체 지향 프로그래밍(OOP)의 기본 개념 중 하나로, 변수와 메서드를 정의하여 특정 객체를 생성할 수 있는 틀(template)입니다. 클래스는 객체를 정의하는 방법을 제공하여 코드의 재사용성을 높이고, 코드 구조를 더 명확하게 만들어 줍니다.

    1. 클래스의 기본 구조

    파이썬에서 클래스를 정의하는 것은 매우 간단합니다. 기본적인 문법은 다음과 같습니다:

    class MyClass:
        def method1(self):
            print("Hello from method1!")
    
        def method2(self, some_string):
            print("Message: " + some_string)
    
    # 클래스 인스턴스 생성
    c = MyClass()
    c.method1()  # "Hello from method1!" 출력
    c.method2("This is a test.")  # "Message: This is a test." 출력
    

    위의 예제에서 MyClass라는 클래스가 정의되었고, 두 개의 메서드(method1과 method2)가 포함되어 있습니다. 객체를 생성한 후, 해당 객체를 통해 이러한 메서드를 호출할 수 있습니다.

    2. 생성자(constructor)

    클래스를 정의할 때, 생성자는 객체가 생성될 때 호출되는 특별한 메서드입니다. 보통 __init__이라는 이름을 사용하며, 초기값을 설정하는 데 주로 사용됩니다. 다음은 생성자의 예시입니다:

    class User:
        def __init__(self, name):
            self.name = name
    
        def say_hello(self):
            print("Welcome to the program, " + self.name)
    
    user1 = User("Alex")
    user1.say_hello()  # "Welcome to the program, Alex" 출력
    

    이 예제에서 __init__ 메서드는 name이라는 매개변수를 받아 해당 값을 객체의 속성으로 저장합니다.

    3. 상속(Inheritance)

    상속은 객체 지향 프로그래밍의 또 다른 중요한 개념으로, 기존 클래스의 속성과 메서드를 새로운 클래스가 물려받는 것을 의미합니다. 상속을 통해 코드의 중복을 줄이고, 새로운 클래스를 더 쉽게 생성할 수 있습니다. 아래는 상속의 예시입니다:

    class ParentClass:
        def method1(self):
            print("Hello from ParentClass")
    
    class ChildClass(ParentClass):
        def method2(self):
            print("Hello from ChildClass")
    
    child = ChildClass()
    child.method1()  # "Hello from ParentClass" 출력
    child.method2()  # "Hello from ChildClass" 출력
    

    여기서 ChildClass는 ParentClass를 상속받기 때문에 ParentClass의 메서드(method1)를 사용할 수 있습니다.

    4. 클래스의 계층 구조

    클래스는 다른 클래스로부터 상속받을 수 있으며, 이러한 상속 관계는 클래스의 계층 구조를 형성합니다. 서브클래스(자식 클래스)는 자신만의 특성을 추가할 수 있으며, 필요한 경우 부모 클래스의 메서드를 재정의(override) 할 수도 있습니다. 이를 통해 기능을 확장하거나 수정할 수 있습니다.

    5. 클래스 계층 구조의 예시

    class Animal:
        def speak(self):
            raise NotImplementedError("Subclass must implement abstract method")
    
    class Dog(Animal):
        def speak(self):
            return "Woof!"
    
    class Cat(Animal):
        def speak(self):
            return "Meow!"
    
    # 객체 생성 및 메서드 호출
    dog = Dog()
    cat = Cat()
    print(dog.speak())  # "Woof!" 출력
    print(cat.speak())  # "Meow!" 출력
    

    위의 예제에서 Animal 클래스는 추상 메서드 speak를 정의하고, Dog와 Cat 클래스가 이를 구현합니다. 각 클래스는 자신만의 방식으로 speak 메서드를 구현하여 다형성을 나타냅니다.

    결론

    클래스는 객체 지향 프로그래밍에서 매우 중요한 개념으로, 코드를 구조화하고 재사용 가능하게 만들어 줍니다. 생성자, 상속, 클래스 계층 구조와 같은 개념들을 통해 더욱 강력하고 유연한 코드를 작성할 수 있습니다. 파이썬은 이러한 객체 지향 프로그래밍을 쉽게 구현할 수 있는 간단한 문법을 제공하기 때문에, 프로그래밍 초보자부터 전문가까지 모두가 쉽게 이용할 수 있습니다. 

    728x90
Designed by Tistory.