>백엔드 개발 >파이썬 튜토리얼 >Python 클래스 인스턴스의 문자열 표현을 어떻게 사용자 정의할 수 있습니까?

Python 클래스 인스턴스의 문자열 표현을 어떻게 사용자 정의할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-18 04:51:11149검색

How Can I Customize the String Representation of Python Class Instances?

클래스 인스턴스의 문자열 표현 사용자 정의

클래스 인스턴스를 인쇄할 때 기본 출력은 일반적으로 <__main__.ClassName 개체(0xXXXXXXXX>)와 유사합니다. 제한된 정보. 클래스 인스턴스가 인쇄될 때 표시되는 방식을 사용자 정의하려면 문자열 표현의 개념을 이해하는 것이 중요합니다.

문자열 표현 방법

Python은 클래스와 객체의 문자열 표현을 제어하기 위한 두 가지 방법을 제공합니다.

  • __str__: print()를 사용할 때 인스턴스가 표시되는 방법을 정의합니다. function.
  • __repr__: repr() 함수를 사용하거나 대화형 프롬프트에서 인스턴스가 표시되는 방법을 정의합니다.

문자열 표현 재정의

클래스 인스턴스의 문자열 표현을 사용하려면 클래스 정의 내에서 이러한 메서드를 재정의해야 합니다. 예를 들면 다음과 같습니다.

class Test:
    def __str__(self):
        return "Customized string representation"

__str__의 사용자 정의 구현을 제공하면 Test 클래스의 인스턴스에서 print()를 호출할 때 출력을 제어할 수 있습니다.

두 문자열 표현 방법 재정의

어떤 경우에는 인쇄 및 디버깅 목적으로 다른 표현을 제공해야 할 수도 있습니다. 이 시나리오에서는 클래스 정의 내에서 __str__ 및 __repr__을 모두 재정의할 수 있습니다.

class Test:
    def __str__(self):
        return "User-friendly representation"

    def __repr__(self):
        return "Technical representation for debugging"

이 구현을 통해 print()는 사용자에게 친숙한 표현을 표시하고 대화형 프롬프트 및 디버깅 도구는 기술적인 표현을 표시합니다.

문자열 표현 방법 사용

사용자 정의 문자열 표현 방법을 정의한 후에는 다음을 사용할 수 있습니다.

  • 사용자 정의 문자열 표현을 인쇄하려면:
print(instance_name)
  • 대화형 프롬프트 또는 디버깅 도구에서 기술 문자열 표현을 보려면:
repr(instance_name)

__str__ 및 __repr__을 재정의하면 특정 요구 사항에 맞게 클래스 인스턴스를 출력하여 다양한 목적에 더 유익하고 유용하게 만듭니다.

위 내용은 Python 클래스 인스턴스의 문자열 표현을 어떻게 사용자 정의할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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