Objects
개체는 data(데이터)와 functionality(기능)을 포함하는 컨테이너입니다.
데이터는 특정 시점의 개체를 나타냅니다. 따라서 객체의 데이터를 state(상태)라고합니다. 파이썬은 attributes(속성)을 사용하여 객체의 상태를 모델링합니다.
기능은 개체의 behavior(동작)을 나타냅니다 . 파이썬은 함수를 사용하여 동작을 모델링합니다. 함수가 객체와 연관되면 객체의 메소드가됩니다.
즉, 개체는 상태와 메서드를 포함하는 컨테이너입니다.
objects를 만들기 전에 먼저 클래스를 정의합니다.
그리고 클래스에서 하나 이상의 개체를 만들 수 있습니다. 클래스의 개체는 클래스의 인스턴스라고도 합니다 .
Define a class
Python에서 클래스를 정의하려면 class 키워드 뒤에 클래스 이름과 콜론을 사용합니다. 다음 예제에서는 Person 클래스를 정의합니다.
class Person:
pass
규칙에 따라 Python의 클래스에는 대문자로 된 이름을 사용합니다. 클래스 이름에 여러 단어가 포함된 경우 CamelCase 형식(예: SalesEmployee)을 사용합니다.
Person 클래스는 불완전하므로 나중에 코드를 더 추가하겠다는 의미로 pass문을 사용해야 합니다.
클래스의 인스턴스를 만들려면 다음과 같이 괄호가 있는 클래스 이름을 사용합니다.
person = Person()
person 개체를 출력할 때 이름과 메모리 주소(16진수)가 표시됩니다.
class Person:
pass
print(person)
Output:
<__main__.Person object at 0x000001C46D1C47F0>
객체의 ID를 가져오려면 id() 함수를 사용합니다. 예를 들어:
print(id(person))
Output(10진수 표기):
1943155787760
개체의 ID는 고유합니다. CPython에서 id()는 객체의 메모리 주소를 반환합니다. hex() 함수는 id() 함수에서 반환된 정수를 접두사 0x가 붙은 소문자 16진수 문자열로 변환합니다.
print(hex(id(person)))
Output:
0x1c46d1c47f0
Person 개체는 Person 클래스의 인스턴스입니다 . isinstance() 함수는 객체가 클래스의 인스턴스인 경우 True를 반환합니다.
print(isinstance(person, Person)) # True
A class is also an object in Python
파이썬의 모든 것은 클래스를 포함하여 객체입니다.
Person 클래스를 정의할 때 파이썬은 이름이 Person인 객체를 만듭니다. Person 개체에는 속성이 있습니다. 예를 들어 __name__ 속성을 사용하여 이름을 찾을 수 있습니다 .
print(Person.__name__)
Output:
Person
Person 개체의 type은 다음과 같습니다. - 클래스는 type class이다
print(type(Person))
Output:
<class 'type'>
Person 클래스에도 동작이 있습니다. 예를 들어 새 인스턴스를 만들 수 있습니다.
person = Person()
Summary
- 개체는 상태와 동작을 포함하는 컨테이너입니다.
- Python에서 클래스는 개체이며, type의 인스턴스입니다.
- 클래스는 개체를 만들기 위한 청사진입니다.
'Python Object-oriented Programming' 카테고리의 다른 글
Class Variables (0) | 2023.04.02 |
---|---|
Class attributes (0) | 2023.04.02 |
Callable (0) | 2023.04.02 |
Object-oriented Programming (0) | 2023.04.02 |
Property Decorator (0) | 2023.04.01 |
댓글