본문 바로가기
Python Object-oriented Programming

__str__ Method

by 자동매매 2023. 4. 3.

 

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

댓글