본문 바로가기
IT/python

파이썬 클래스(class)

by 뉴코딩맨 2023. 6. 2.
파이썬은 객체 지향 프로그래밍을 지원하는 언어로, 클래스(class)를 정의하여 객체를 생성하고 관리할 수 있습니다. 클래스는 데이터와 해당 데이터를 처리하는 메서드(method)를 하나로 묶은 사용자 정의 데이터 타입입니다. 파이썬 클래스의 개념과 활용 방법에 대해 알아보고, 실제 예제를 통해 클래스를 구현해보겠습니다.

 

 

클래스 정의와 객체 생성

클래스는 class 키워드를 사용하여 정의됩니다. 클래스 이름은 관례적으로 대문자로 시작하며, 일반적으로 명사로 지정됩니다. 클래스 내부에는 속성(attribute)과 메서드가 포함될 수 있습니다. 속성은 클래스의 데이터를 나타내고, 메서드는 해당 데이터를 처리하는 함수입니다. 객체를 생성하기 위해서는 클래스를 호출하여 인스턴스(instance)를 생성합니다.
 
class Person:
	def __init__(self, name, age):
		self.name = name
		self.age = age

	def greet(self):
		print(f"안녕하세요! 저는 {self.name}입니다.")

# Person 클래스의 인스턴스 생성
person1 = Person("Alice", 25)
person2 = Person("Bob", 30)

# 메서드 호출
person1.greet() # 안녕하세요! 저는 Alice입니다.
person2.greet() # 안녕하세요! 저는 Bob입니다.

 

 

상속

파이썬 클래스는 상속(inheritance)을 지원하여 기존 클래스를 확장하고 재사용할 수 있습니다. 상속을 통해 부모 클래스의 속성과 메서드를 자식 클래스가 상속받을 수 있으며, 필요한 경우 자식 클래스에서 추가 기능을 구현할 수 있습니다.

 

class Student(Person):
    def __init__(self, name, age, student_id):
        super().__init__(name, age)
        self.student_id = student_id

    def study(self):
    	print(f"{self.name} 학생이 공부합니다.")

student1 = Student("John", 20, "20210001")
student1.greet() # 안녕하세요! 저는 John입니다.
student1.study() # John 학생이 공부합니다.
 
 

다형성

파이썬은 다형성(polymorphism)을 지원하여 같은 메서드 이름을 가진 다른 클래스의 인스턴스가 다르게 동작할 수 있도록 합니다. 다형성을 활용하면 한 가지 메서드를 사용하여 다양한 타입의 객체를 처리할 수 있습니다.
 
class Shape:
	def area(self):
		pass


class Rectangle(Shape):
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
    	return self.width * self.height

class Circle(Shape):
    def __init__(self, radius):
    	self.radius = radius

    def area(self):
		return 3.14 * self.radius ** 2

# 다형성을 이용한 메서드 호출
shapes = [Rectangle(4, 5), Circle(3)]
for shape in shapes:
	print(shape.area())

# 출력:
# 20
# 28.26
 
 

결론

파이썬 클래스의 개념과 활용 방법에 대해 알아보았습니다. 클래스를 사용하면 데이터와 해당 데이터를 처리하는 메서드를 하나의 단위로 묶어 구조화된 프로그램을 작성할 수 있습니다. 상속을 통해 코드의 재사용성을 높이고, 다형성을 이용하여 유연하고 확장 가능한 프로그램을 개발할 수 있습니다. 파이썬 클래스를 잘 활용하여 보다 효율적이고 유지보수가 쉬운 프로그래밍을 할 수 있도록 노력해봅시다.

 

'IT > python' 카테고리의 다른 글

파이썬 matplotlib 패키지  (0) 2023.06.03
파이썬 예외처리  (0) 2023.06.02
파이썬 glob 모듈  (0) 2023.06.02
파이썬 pickle 모듈  (0) 2023.06.01
파이썬 os 모듈  (1) 2023.06.01

댓글