Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 클래스 만들기: 기본 문법부터 예제까지

파이썬 클래스 정의하기

파이썬에서는 class 문을 사용하여 새로운 클래스를 정의합니다. 클래스 이름은 class 키워드 바로 뒤에 작성하고, 그 뒤에 콜론(:)을 붙이면 됩니다.

class ClassName:
    '선택적인 클래스 문서화 문자열(docstring)'
    class_suite
  • 클래스에는 문서화 문자열(docstring)을 포함할 수 있으며, ClassName.__doc__을 통해 언제든지 확인할 수 있습니다.
  • class_suite는 클래스 멤버, 데이터 속성, 함수(메서드)를 정의하는 모든 구성 문장으로 이루어집니다.

클래스 작성 예제

다음은 간단한 파이썬 클래스의 예입니다.

class Employee:
    '모든 직원의 공통 기반 클래스'
    empCount = 0

    def __init__(self, name, salary):
        self.name = name
        self.salary = salary
        Employee.empCount += 1

    def displayCount(self):
        print("Total Employee %d" % Employee.empCount)

    def displayEmployee(self):
        print("Name : ", self.name, ", Salary: ", self.salary)
  • 변수 empCount는 클래스 변수(class variable)로, 이 클래스의 모든 인스턴스가 값을 공유합니다. 클래스 내부와 외부 어디에서든 Employee.empCount 형태로 접근할 수 있습니다.
  • 첫 번째 메서드인 __init__은 특별한 메서드로, 클래스 생성자 또는 초기화 메서드라고 부릅니다. 파이썬은 이 클래스의 새 인스턴스가 생성될 때마다 자동으로 호출합니다.
  • 그 외의 클래스 메서드는 일반 함수처럼 선언하지만, 각 메서드의 첫 번째 인자가 반드시 self여야 한다는 점이 다릅니다. 파이썬이 메서드를 호출할 때 자동으로 self 인자를 전달해 주므로, 호출 시에는 직접 넣어줄 필요가 없습니다.

클래스 인스턴스 생성하고 사용하기

클래스를 정의한 후에는 클래스 이름을 함수처럼 호출하여 객체(인스턴스)를 만들 수 있습니다.

# 첫 번째 직원 객체 생성
emp1 = Employee("Zara", 2000)
# 두 번째 직원 객체 생성
emp2 = Employee("Manni", 5000)

emp1.displayEmployee()
emp2.displayEmployee()
print("Total Employee %d" % Employee.empCount)

위 코드를 실행하면 각 직원의 이름과 급여가 출력되고, empCount 덕분에 생성된 직원의 총 수도 함께 확인할 수 있습니다. 이처럼 하나의 클래스 정의로 여러 개의 독립적인 객체를 손쉽게 만들고 관리할 수 있는 것이 파이썬 객체 지향 프로그래밍의 핵심입니다.