Introduction to the Python __str__
method
class Person:
def __init__(self, first_name, last_name, age):
self.first_name = first_name
self.last_name = last_name
self.age = age
person = Person('John', 'Doe', 25)
print(person) # <__main__.Person object at 0x000001B132EC2A40>
print(Person) # <class '__main__.Person'>
print() 함수를 사용하여 Person 클래스의 인스턴스를 표시하는 경우 print() 함수는 해당 인스턴스의 메모리 주소를 표시합니다.
때로는 클래스 인스턴스의 문자열 표현을 갖는 것이 유용합니다. 클래스 인스턴스의 문자열 표현을 사용자 지정하려면 클래스에서 __str__ 매직 메서드를 구현해야 합니다.
파이썬은 내부적으로 인스턴스가 str() 메서드를 호출 할 때 자동으로 __str__ 메서드를 호출합니다 .
print() 함수는 문자열 값을 표시하기 전에, 키워드가 아닌 모든 인수를 str()에 전달하여 그들을 문자열로 변환합니다.
다음은 Person 클래스에서 __str__ 메서드를 구현하는 방법을 보여 줍니다.
class Person:
def __init__(self, first_name, last_name, age):
self.first_name = first_name
self.last_name = last_name
self.age = age
def __str__(self):
return f'Person({self.first_name},{self.last_name},{self.age})'
그리고 print() 함수를 사용하여 Person 클래스의 인스턴스를 출력 할 때 Python은 Person 클래스에 정의된 __str__ 메서드를 호출합니다. 예를 들어:
person = Person('John', 'Doe', 25)
print(person) # Person(John,Doe,25) <--- print(str(person))과 동일 결과
Summary
- __str__ 메서드를 구현하여 클래스 인스턴스의 문자열 표현을 사용자 지정합니다.
'Python Object-oriented Programming' 카테고리의 다른 글
__eq__ Method (0) | 2023.04.03 |
---|---|
__repr__ Method (0) | 2023.04.03 |
Private Attributes (0) | 2023.04.03 |
Instance Variables (0) | 2023.04.03 |
__init__ Method (0) | 2023.04.03 |
댓글