Coding/OOP Paradigm

    [OOP Paradigm] 파이썬객체지향: Everything in Python is an object (4)

    # 객체지향프로그래밍이란? 앞서 파이썬의 모든 것이 객체라고 정의한 바 있습니다. 우리가 일반적으로 사용했던 숫자나 리스트, 튜플 등 모든 자료형이 어떤 클래스의 인스턴스입니다. 코드로 본 바와 같이 인스턴스들은 특정 클래스에 속해있고 그 클래스들은 특정 속성(Attribute)와 기능(Method)를 가짐을 알 수 있습니다. 클래스들의 속성과 기능을 미리 정의한 부분을 통해 볼 수 있듯이 객체 지향프로그래밍은 클래스를 구성하기 위해 관련된 속성이나 동작을 개별 객체로 묶음으로써 구조화된 프로그램을 구성하는 방법입니다. 예를 들어, 객체는 이름, 나이, 주소와 같은 속성(Attribute)와 걷기,말하기, 호흡하기, 달리기와 같은 행동(Method)을 가진 사람을 나타낼 수 있습니다. 즉, 객체 지향 프..

    [OOP Paradigm] 파이썬객체지향: Everything in Python is an object (3)

    # Everything in Python is an object 2. 함수: Functions are first-class object 일반적인 함수를 통해 함수는 어떤 형태로 정의되는지 살펴보도록 하겠습니다. >>>> def area(h, v): >>>> return h*v >>>> print(type(area)) 일반적인 함수를 이야기하면 함수가 클래스 ‘function’ 에 정의되어 있음을 알 수 있습니다. 파이썬은 함수를 정의할 때 사용자가 정의한 함수 객체를 정의합니다. 이를 “Functions are first-class object” 라 이야기합니다. 다음 예시들을 통해 함수 객체를 어떻게 사용할 수 있는지 보겠습니다. >>>> def yell(text): >>>> return text.up..

    [OOP Paradigm] 파이썬객체지향: Everything in Python is an object (2)

    # Everything in Python is an object 파이썬은 순수 객체 지향 프로그래밍 언어이며 모든 것이 객체(object)로 작동됩니다. 앞서 파이썬의 변수는 단순히 포인터라고 이야기하였습니다. 이는 변수 이름 자체에는 첨부된 type 정보가 없다고 생각할 수 있습니다. 이때문에 파이썬을 type-free 언어라고 생각할 수 있지만 사실이 아닙니다. 다음 예시를 보도록 하겠습니다: >>>> print(type(2)) >>>> print(type(2.3)) >>>> print(type(2+3j)) >>>> print(type("string")) >>>> print(type([])) >>>> print(type({})) >>>> print(type(())) 파이썬에서 클래스 개념의 type ..

    [OOP Paradigm] 파이썬객체지향: Everything in Python is an object (1) Python Variables Are Pointers

    파이썬에서 언급되는 “Everything in Python is an object” 의 의미를 다음 보고서를 통해 이야기하고자 합니다. 위 개념을 파이썬의 Memory Collection 과 Semantics 내용을 포함하여 이야기하고, 이러한 개념이 객체 지향 프로그래밍 (OOP)으로 확장되어 어떻게 활용되는지 설명해보고자 합니다. # Python Variables Are Pointers 파이썬은 등호(=) 기호를 통해 변수를 할당합니다. # 변수 x 에 4 를 할당 x=4 많은 프로그래밍 언어에서 변수를 데이터를 담는 컨테이너(container)나 버킷(bucket)으로 생각합니다. C 언어를 예를 들어 이야기를 해보겠습니다. // C 언어 예시 int x = 4; C 언어에서는 x 라는 “메모리 컨..

    [OOP Paradigm] Object-Oriented Paradigm(OOP) in Python/객체지향프로그래밍 in 파이썬

    코드를 작성할 때 프로그램의 개발과 보수를 용이하게 하거나, 직관적인 코드를 제공하는 등의 여러 요인으로 좋은 코드를 정의하게 된다. 좋은 코드를 정의할 때 언급되는 대표적인 방식인 객체 지향 프로그래밍(Object-Oriented Paradigm)에 대해서 알아보고, 이를 Python에서 적용한 예시를 살펴보자. (사진 출저: GeeksforGeeks, 내용 참고: realPython, programiz) 1. Object-Oriented Paradigm in Python 이 무엇이며, 어떤 면에서 유리한가? 객체 지향 프로그래밍(Object-Oriented Programming, OOP)는 컴퓨터 패러다임 중 하나로, 관련된 속성이나 동작을 개별 객체(object)로 묶음으로써 구조화된 프로그램을 구..