Python에서 클래스의 객체 인쇄

Muhammad Waiz Khan 2023년1월30일
  1. __repr__()메서드를 사용하여 Python에서 객체 인쇄
  2. __str__()메서드를 사용하여 Python에서 객체 인쇄
  3. 새 클래스 메서드를 추가하여 Python에서 개체 인쇄
Python에서 클래스의 객체 인쇄

이 자습서에서는 Python에서 클래스 개체를 인쇄하는 여러 메서드를 살펴 봅니다. 객체의 데이터 또는 값보기와 같이print()함수를 사용하여 클래스 인스턴스를 인쇄한다고 가정합니다. 아래에 설명 된 방법을 사용하여 그렇게 할 수 있습니다.

__repr__()메서드를 사용하여 Python에서 객체 인쇄

__repr__()메소드는 문자열 형태로 객체의 인쇄 가능한 표현을 반환합니다. 기본적으로 객체의 클래스 이름과 객체의 주소를 반환합니다.

print()함수를 사용하여 Python에서 객체를 인쇄 할 때 객체의__str__()메서드가 호출됩니다. 정의되지 않은 경우__str__()__repr__()메서드의 반환 값을 반환합니다. 그렇기 때문에print()함수를 사용하여 사용자 정의 클래스의 객체를 인쇄하려고 할 때__repr__()메서드의 반환 값을 반환합니다.

따라서 객체의 요약 또는 원하는 값을 인쇄하기 위해__repr__()메서드를 정의하거나 재정의 할 수 있습니다.

__repr__()메소드가없는 사용자 정의 클래스ClassA가 있다고 가정하면, 아래 예제 코드는__repr__()메소드없이ClassA의 객체를 인쇄하려고 할 때 출력을 보여줍니다.

class classA:
    def __init__(self):
        self.var1 = 0
        self.var2 = "Hello"


A = classA()
print(A)

출력:

<__main__.classA object at 0x7fa29aa28c50>

__repr__()메소드를 정의하지 않았기 때문에 기본적으로 클래스 이름과 객체 주소를 반환했습니다.

이제classA클래스의__repr__()메소드를 정의한 다음print()함수를 사용합니다. print()print(repr())는 동일한 값을 반환해야합니다.

class classA:
    def __init__(self):
        self.var1 = 0
        self.var2 = "Hello"

    def __repr__(self):
        return "This is object of class A"


A = classA()
print(A)
print(repr(A))

출력:

This is object of class A
This is object of class A

__str__()메서드를 사용하여 Python에서 객체 인쇄

__str__()메소드는 Python에서 객체의 문자열 버전을 반환합니다. 객체에__str__()메서드가 없으면__repr__()메서드와 동일한 값을 반환합니다.

위의 예제 코드에서__str__()메서드가 정의되지 않은 경우print()메서드는__repr__()메서드를 사용하여 개체의 인쇄 가능한 표현을 인쇄합니다.

이제 예제 클래스ClassA__str__()메소드를 정의한 다음print()함수를 사용하여classA의 객체를 인쇄 해 봅니다. print()함수는__str__()메소드의 출력을 반환해야합니다.

class classA:
    def __init__(self):
        self.var1 = 0
        self.var2 = "Hello"

    def __repr__(self):
        return "This is object of class A"

    def __str__(self):
        print("var1 =", self.var1)
        print("var2 =", end=" ")
        return self.var2


A = classA()
print(A)

출력:

var1 = 0
var2 = Hello

새 클래스 메서드를 추가하여 Python에서 개체 인쇄

클래스의__str__()__repr__()메서드를 재정의하거나 정의하는 대신 다른 접근 방식을 사용할 수 있습니다. 새로운 print() 메서드는 우리가 선택한 클래스 속성이나 값을 인쇄 할 클래스 내에서 설명 될 수 있습니다.

아래 예제 코드는object.print()메소드를 정의하고 사용하여 Python에서 객체를 인쇄하는 방법을 보여줍니다.

class classA:
    def __init__(self):
        self.var1 = 0
        self.var2 = True
        self.var3 = "Hello"

    def print(self):
        print("var1 =", self.var1)
        print("var2 =", self.var2)
        print("var3 =", self.var3)


A = classA()
A.var2 = False
A.print()

출력:

var1 = 0
var2 = False
var3 = Hello

관련 문장 - Python Object