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

파이썬은 객체 지향 언어인가, 절차 지향 언어인가?

네, 파이썬(Python)은 객체 지향 프로그래밍(Object-Oriented Programming)절차 지향 프로그래밍(Procedural Programming)을 모두 지원합니다. 파이썬은 범용 프로그래밍을 위해 설계된 고급 프로그래밍 언어이기 때문입니다.

파이썬은 멀티 패러다임(multi-paradigm) 언어로, 절차 지향, 객체 지향, 함수형 스타일의 프로그램이나 라이브러리를 모두 작성할 수 있습니다. 물론 '함수형'이라는 단어가 무엇을 의미하느냐에 따라 해석이 달라질 수 있지만, 파이썬 역시 함수형 언어의 일부 특징을 갖추고 있습니다.

객체 지향 프로그래밍(OOP)

클래스(Class), 캡슐화(Encapsulation), 다형성(Polymorphism), 상속(Inheritance) 등 객체 지향의 핵심 개념을 모두 활용할 수 있기 때문에, 파이썬은 대표적인 객체 지향 프로그래밍 언어로 분류됩니다.

절차 지향 프로그래밍

반대로 for, while 같은 반복문과 조건문 등 제어 구조를 중심으로 코드를 작성하면, 파이썬으로도 충분히 절차 지향 방식의 프로그램을 만들 수 있습니다. 즉, 어떤 패러다임으로 코딩할지는 개발자의 선택에 달려 있습니다.

예제 코드

class Rectangle:
    def __init__(self, length, breadth, unit_cost=0):
        self.length = length
        self.breadth = breadth
        self.unit_cost = unit_cost
    def get_perimeter(self):
        return 2 * (self.length + self.breadth)
    def get_area(self):
        return self.length * self.breadth
    def calculate_cost(self):
        area = self.get_area()
        return area * self.unit_cost
# 가로 = 120cm, 세로 = 160cm, 1cm²당 2000루피
r = Rectangle(160, 120, 2000)
print("Area of Rectangle: %s cm^2" % (r.get_area()))
print("Cost of rectangular field: Rs. %s " %(r.calculate_cost()))

위 예제는 사각형(Rectangle) 클래스를 정의한 것으로, 가로·세로 길이와 제곱센티미터당 단가를 속성으로 저장하고, 둘레와 넓이를 계산하는 메서드, 그리고 총 비용을 계산하는 메서드를 함께 포함하고 있습니다. 이처럼 데이터(속성)와 동작(메서드)을 하나의 객체로 묶어 관리하는 것이 바로 객체 지향 프로그래밍의 전형적인 모습입니다.

실행 결과

Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000