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

파이썬 함수 속성(Function Attributes)이란 무엇인가?

파이썬에서는 모든 것이 객체(Object)이며, 거의 모든 객체는 속성(Attribute)과 메서드(Method)를 가지고 있습니다. 흥미롭게도 파이썬에서 함수 역시 하나의 객체입니다. 따라서 함수도 다른 객체들처럼 자신만의 속성을 가질 수 있습니다.

함수의 기본 속성: __doc__

모든 함수에는 내장 속성인 __doc__이 존재합니다. 이 속성은 함수 소스 코드에 정의된 독스트링(Docstring)을 반환하며, 함수에 대한 설명 문서를 담는 용도로 사용됩니다.

새로운 속성 할당하기

파이썬에서는 함수에 새로운 속성을 동적으로 추가할 수 있으며, 나중에 해당 속성의 값을 다시 조회할 수도 있습니다. 속성을 다룰 때 파이썬은 getattrsetattr이라는 유용한 내장 함수를 제공합니다. setattr은 세 개의 인자(객체, 속성 이름, 값)를 받으며, = 대입 연산자 왼쪽에서 점 표기법(dot notation)을 사용하는 것과 결과적으로 차이가 없습니다.

예제 코드

아래 코드는 setattr, getattr, 그리고 점 표기법을 사용해 함수에 속성을 할당하고 조회하는 방법을 보여줍니다.

def foo():
    pass

# setattr을 사용한 속성 할당
setattr(foo, 'age', 23)
setattr(foo, 'name', 'John Doe')

# getattr을 사용한 속성 조회
print(getattr(foo, 'age'))

# 점 표기법을 사용한 속성 할당 및 조회
foo.gender = 'male'
print(foo.gender)
print(foo.name)
print(foo.age)

실행 결과

23
male
John Doe
23

정리

이처럼 파이썬의 함수는 일급 객체(First-class Object)이기 때문에 변수에 저장하거나 인자로 전달할 수 있을 뿐만 아니라, 임의의 속성을 붙여 활용할 수도 있습니다. 이러한 특성은 함수에 메타데이터를 부여하거나 상태를 저장하는 등 다양한 패턴에서 유용하게 사용됩니다.