파이썬 클래스 객체의 두 가지 기본 연산
파이썬 공식 문서에 따르면, 클래스 객체는 속성 참조(attribute reference)와 인스턴스화(instantiation)라는 두 가지 종류의 연산을 지원합니다.
속성 참조는 파이썬에서 모든 속성 참조에 공통적으로 사용되는 표준 문법을 따릅니다. 바로 obj.name 형태입니다. 여기서 유효한 속성 이름이란, 클래스 객체가 생성되는 시점에 해당 클래스의 네임스페이스(namespace)에 존재하던 모든 이름을 의미합니다.
클래스 정의 예제
예를 들어, 클래스 정의가 아래와 같다고 가정해 보겠습니다.
class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'유효한 속성 참조의 예
위와 같은 클래스 정의가 있다면, MyClass.i와 MyClass.f는 모두 유효한 속성 참조입니다. 전자는 정수(integer)를 반환하고, 후자는 함수 객체(function object)를 반환합니다.
>>> MyClass.i
12345
>>> MyClass.f
<function MyClass.f at 0x...>클래스 속성 값 변경하기
클래스 속성에는 새로운 값을 할당하는 것도 가능합니다. 즉, 대입(assignment)을 통해 MyClass.i의 값을 언제든 변경할 수 있습니다.
>>> MyClass.i = 99999
>>> MyClass.i
99999__doc__ 속성 활용하기
__doc__ 역시 유효한 속성 중 하나입니다. 이 속성은 클래스에 포함된 독스트링(docstring)을 반환하며, 위 예제에서는 "A simple example class"라는 문자열이 반환됩니다.
>>> MyClass.__doc__
'A simple example class'이처럼 파이썬에서는 점(.) 표기법을 사용해 클래스 네임스페이스에 정의된 변수나 메서드에 손쉽게 접근할 수 있으며, 필요에 따라 속성 값을 동적으로 수정하는 것도 가능합니다.