반응형
파이썬, 클래스와 __getattr__()
__getattr__() 메서드는 접근 가능한 속성(변수)이 없을 때 동작하며,
메서드 존재 여부는 처리하지 못한다.
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def __getattr__(self, key): # 속성(변수)이 존재하지 않으면
return 'Key not found' # 오류 메시지 반환
def get_name(self):
return self.name
def get_age(self):
return self.age
# 예제 테스트 -----------------------------------------------------
dog = Dog('jindo', 2)
print(dog.name) # jindo
print(dog.age) # 2
print(dog.bread) # Key not found
print(dog.get_name()) # jindo
print(dog.get_age()) # 2
print(dog.get_bread()) # TypeError: 'str' object is not callable
반응형
'Python 기초' 카테고리의 다른 글
파이썬, 클래스 __str__(), __invert__() (0) | 2023.12.17 |
---|---|
파이썬, 클래스의 서브 클래스 확인 (0) | 2023.12.17 |
파이썬, 클래스에 산술연산자 적용하기 (0) | 2023.12.17 |
time.time(), datetime.datetime.now() 예제 (1) | 2023.11.13 |
파이썬 3.9 추가 기능 (0) | 2023.10.27 |