فرض کنید که بخواهیم ویژگی های یک شی را که از روی یک کلاس ایجاد کرده ایم نمایش دهیم. کلاس Person را که در مطالب قبلی استفاده کردیم در نظر بگیرید:

class Person:
    def __init__(self, first_name, last_name, IDnumber ):
        self.firstname=first_name
        self.lastname=last_name
        self.ID=IDnumber
        self.salary = None
kamran=Person('Kamran' , 'Hamidi' , '1257148')
print(kamran)

اگر یک کارمند جدید با این کلاس ایجاد کنیم و با دستور print بخواهیم مقدارش را نمایش دهیم خروجی به این شکل نمایش داده می شود:

<__main__.Person object at 0x000001F327211370>

اما این نمایش چیزی از خصوصیات شی Kamran ارایه نمی دهد. اما برای این کار می توانیم از متد خاصی به نام __repr__ استفاده کنیم.

متد __repr__ یک متد خاص در کلاس‌های پایتون است که نمایش رشته‌ای از یک شی را برمی‌گرداند. توسط تابع ()repr داخلی فراخوانی می شود و برای ارائه یک نمایش رشته دقیق تر و رسمی از یک شی استفاده می شود.

در اینجا مثالی از نحوه تعریف متد __repr__ در کلاس Person آورده شده است:

def __repr__(self):
    return f"Person('{self.firstname}', '{self.lastname}', {self.ID})"

در این مثال، متد __repr__ رشته‌ای را برمی‌گرداند که می‌توان از آن برای ایجاد مجدد شی Person استفاده کرد. این رشته حاوی مقادیر first_name، last_name و IDnumber شیء است.

برنامه کامل را در زیر می بینید:

class Person:
    def __init__(self, first_name, last_name, IDnumber ):
        self.firstname=first_name
        self.lastname=last_name
        self.ID=IDnumber
        self.salary = None
    
    def __repr__(self):
        return f"Person('{self.firstname}', '{self.lastname}', {self.ID})"

kamran=Person('Kamran' , 'Hamidi' , '1257148')
print(kamran)

این بار با اجرای برنامه خروجی را به این صورت مشاهده خواهید نمود:

Person(‘Kamran’, ‘Hamidi’, 1257148)

که مقادیر ویژگی های ذکر شده را به طور قابل فهمی ارایه می دهد.