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