>  기사  >  백엔드 개발  >  Python에서 __str__() 함수를 사용하여 객체의 문자열 표현을 정의하는 방법

Python에서 __str__() 함수를 사용하여 객체의 문자열 표현을 정의하는 방법

WBOY
WBOY원래의
2023-08-21 22:55:541282검색

Python에서 __str__() 함수를 사용하여 객체의 문자열 표현을 정의하는 방법

Python에서 __str__() 함수를 사용하여 객체의 문자열 표현을 정의하는 방법

Python에서 모든 객체에는 객체를 인쇄할 때 내용을 표시하는 데 사용되는 문자열 표현이 있습니다. 객체의 기본 문자열 표현이 우리의 요구 사항을 충족하지 못하는 경우가 많습니다. 객체의 문자열 표현을 사용자 정의하기 위해 Python에서 __str__() 함수를 사용할 수 있습니다.

__str__() 함수는 객체를 문자열로 변환하는 데 사용되는 특수 메서드입니다. 객체를 인쇄할 때 Python은 자동으로 객체의 __str__() 함수를 호출하고 반환 값을 문자열로 인쇄합니다.

다음은 Python에서 __str__() 함수를 사용하여 객체의 문자열 표현을 정의하는 방법을 보여주는 간단한 예입니다.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"Person(name={self.name}, age={self.age})"

person = Person("Tom", 25)
print(person)

위 코드에서는 Person이라는 클래스를 정의했습니다. 이 클래스에는 이름과 이름이라는 두 가지 속성이 있습니다. 나이. 클래스에 __str__() 함수를 정의하고 객체의 속성 값을 포함하는 형식화된 문자열을 반환합니다.

Person 객체를 생성하고 인쇄하면 Python은 자동으로 객체의 __str__() 함수를 호출하고 반환 값을 인쇄합니다. 출력 결과는 다음과 같습니다.

Person(name=Tom, age=25)

__str__() 함수를 정의하면 객체의 속성 값을 보다 직관적인 방식으로 표시할 수 있어 프로그램을 더 쉽게 디버그하고 이해할 수 있습니다. 우리는 필요에 따라 __str__() 함수의 문자열 형식을 사용자 정의하고 인쇄된 내용을 정확하게 제어할 수 있습니다.

__str__() 함수 외에도 Python은 __repr__()이라는 또 다른 특수 메서드도 제공합니다. __repr__() 메서드가 반환하는 문자열은 객체를 생성하는 데 사용할 수 있는 유효한 Python 표현식이어야 합니다. __str__() 함수를 정의하지 않으면 Python은 기본적으로 객체의 __repr__() 함수를 호출하여 객체를 인쇄합니다.

다음은 __repr__() 메서드를 사용하는 방법을 보여주는 예입니다.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f"Person(name={self.name}, age={self.age})"

person = Person("Tom", 25)
print(person)

이 코드는 이전 예제 코드와 거의 동일하며 유일한 차이점은 __str__() 대신 __repr__() 메서드를 사용한다는 것입니다. 방법 . 출력은 여전히 ​​동일합니다.

Person(name=Tom, age=25)

__str__() 메서드는 주로 개체에 대한 설명 문자열을 제공하는 데 사용되는 반면, __repr__() 메서드는 주로 개체를 재구성하는 데 사용되는 문자열을 제공하는 데 사용됩니다. . 실제 개발에서는 필요에 따라 어떤 방법을 사용할지 선택하거나 두 가지 방법을 동시에 정의하여 보다 포괄적인 문자열 표현을 제공할 수 있습니다.

위 내용은 Python에서 __str__() 함수를 사용하여 객체의 문자열 표현을 정의하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.