다음 글에서는 파이썬의 맞춤형 클래스가 무엇인지 알아보겠습니다. python 사용자 정의 클래스가 무엇인지, Python 사용자 정의 클래스가 Python 프로그래밍에서 어떤 역할을 할 수 있는지 알아보세요.
__slots__과 같은 __xxx__ 형식의 변수나 함수 이름이 표시되면 Python에서 특별한 용도로 사용됩니다.
우리는 이미 __slots__를 사용하는 방법을 알고 있으며 클래스가 len() 함수에 대해 작동할 수 있도록 하는 __len__() 메서드도 알고 있습니다.
또한 Python 클래스에는 클래스 사용자 정의에 도움이 되는 특수 목적 함수가 많이 있습니다.
__str__
먼저 Student 클래스를 정의하고 인스턴스를 인쇄합니다.
>>> class Student(object): ... def __init__(self, name): ... self.name = name ... >>> print(Student('Michael')) <__main__.Student object at 0x109afb190>
<__main__.student at>을 인쇄합니다. 꽤 보기 흉합니다.
어떻게 하면 예쁘게 인쇄할 수 있나요? __str__() 메서드를 정의하고 보기 좋은 문자열을 반환하기만 하면 됩니다.
>>> class Student(object): ... def __init__(self, name): ... self.name = name ... def __str__(self): ... return 'Student object (name: %s)' % self.name ... >>> print(Student('Michael')) Student object (name: Michael)
이렇게 인쇄된 인스턴스는 보기에도 좋을 뿐만 아니라 인스턴스 내부의 중요한 데이터를 쉽게 볼 수 있게 해줍니다.
하지만 주의 깊은 친구들은 인쇄하지 않고 변수를 직접 입력하면 인쇄된 예제가 여전히 좋아 보이지 않는다는 것을 알게 될 것입니다.
>>> s = Student('Michael') >>> s<__main__.Student object at 0x109afb310>
이것은 변수 호출의 직접 표시가 __str__()이 아니라 __repr__()이기 때문입니다. 두 가지 __str__()은 사용자가 보는 문자열을 반환하고, __repr__()은 프로그램 개발자가 보는 문자열을 반환합니다. 즉, __repr__()은 디버깅을 위한 것입니다.
해결책은 또 다른 __repr__()을 정의하는 것입니다. 하지만 일반적으로 __str__()과 __repr__()의 코드는 동일하므로 게으르게 작성하는 방법도 있습니다.
class Student(object): def __init__(self, name): self.name = name def __str__(self): return 'Student object (name=%s)' % self.name __repr__ = __str__
위 내용은 이 글의 내용 전부입니다. 이 글에서는 주로 python 사용자 정의 클래스_ _str__ 관련 내용을 소개합니다. 지식, 위의 내용을 이해하는 데 정보를 사용할 수 있기를 바랍니다. 이 글에서 제가 설명한 내용이 여러분에게 도움이 되고 파이썬을 더 쉽게 배울 수 있기를 바랍니다.
더 많은 관련 지식을 알고 싶으시면 PHP 중국어 홈페이지의 Python tutorial 칼럼을 방문해 주세요.
위 내용은 Python 사용자 정의 클래스 __str__(자세한 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!