Python에서 클래스를 만드는 방법(객체 지향 프로그래밍)

Python에서 클래스를 만드는 방법을 알아보세요. __init__ 생성자, 인스턴스 메서드, self 키워드 및 객체 인스턴스화를 마스터하세요.

Editor에서 이 솔루션을 사용해 보세요.

개요

객체 지향 프로그래밍(OOP)은 실제 엔터티를 모델링하고 애플리케이션을 구조화하며 코드 재사용성을 촉진하는 데 사용되는 강력한 패러다임입니다. Python에서는 모든 것이 객체이고 클래스는 개별 객체가 생성되는 청사진입니다. 클래스를 생성하면 데이터 속성과 함수를 함께 묶을 수 있습니다.

클래스를 정의하려면 `class` 키워드와 클래스 이름(일반적으로 PascalCase로 작성됨)을 사용합니다. 클래스 내에서 가장 중요한 메소드는 생성자 `__init__(self, ...)`입니다. 이 특별한 매직 메소드는 클래스를 인스턴스화할 때 자동으로 실행되어 객체의 시작 데이터 속성을 초기화합니다.

`self` 매개변수는 현재 생성하거나 수정 중인 클래스의 특정 인스턴스를 나타냅니다. 클래스 내의 모든 인스턴스 메서드는 `self`를 첫 번째 인수로 받아들여야 합니다. 인스턴스 메소드는 객체의 속성에 대해 작동하는 클래스 내부에 정의된 함수로, 로직을 깔끔하게 캡슐화할 수 있습니다.

코드 및 실행 출력

이 스크립트는 클래스 생성, 속성 정의, 클래스 인스턴스 메서드 및 객체 생성을 보여줍니다.

# 1. Defining a class
class User:
    def __init__(self, username, email):
        self.username = username
        self.email = email
        self.active = True  # Default attribute

    def get_info(self):
        status = "Active" if self.active else "Inactive"
        return f"User: {self.username} | Email: {self.email} | Status: {status}"

# 2. Instantiating objects of the class
user1 = User("codeguy", "guy@example.com")
user2 = User("pygirl", "girl@example.com")

# 3. Accessing attributes and invoking methods
print(user1.get_info())
print(user2.username, "has email", user2.email)
터미널 출력
User: codeguy | Email: guy@example.com | Status: Active
pygirl has email girl@example.com

단계별 구현

  • 클래스 템플릿을 선언하려면 class 키워드를 사용하세요.
  • 초기 속성을 설정하려면 __init__(self, ...) 생성자를 정의하세요.
  • 객체 상태에 대해 작업하려면 self를 첫 번째 매개변수로 받아들이는 인스턴스 메서드를 추가하세요.
  • ClassName(...)을 호출하여 새 개체 인스턴스를 인스턴스화하고 만듭니다.

자주 묻는 질문

self 매개변수는 무엇을 나타냅니까?

생성되거나 조작되는 개체의 특정 인스턴스를 나타냅니다. 속성을 인스턴스에 바인딩해야 합니다.

클래스가 모든 인스턴스에서 공유되는 속성을 가질 수 있습니까?

예, 이것은 클래스 속성입니다. 클래스 헤더(__init__ 외부) 아래에서 직접 정의하고 ClassName.attribute를 사용하여 액세스합니다.

관련 주제

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.