__str__ vs __repr__

YU NA Joe·2022년 5월 14일
0
import datetime
now = datetime.datetime.now()
now

now.__str__()  # '2022-05-14 21:08:42.273530'
now.__repr__() # 'datetime.datetime(2022, 5, 14, 21, 8, 42, 273530)'
class Person:
    def __init__(self, person_name, person_age):
        self.name = person_name
        self.age = person_age
        
p1 = Person("yuna",100)

p1.__str__()  # '<__main__.Person object at 0x000002B584D43F70>'
p1.__repr__() # '<__main__.Person object at 0x000002B584D43F70>'

# default implementation is useless
class Person:
    def __init__(self, person_name, person_age):
        self.name = person_name
        self.age = person_age
        
    def __str__(self):
        return f"저의 이름은 {self.name}이고 나이는 {self.age}입니다"
    
    def __repr__(self):
        return f"저의 이름은 {self.name}이고 나이는 {self.age}입니다"
    
p1 = Person("yunaa",32)

p1.__str__()  # '저의 이름은 yunaa이고 나이는 32입니다'
p1.__repr__() # '저의 이름은 yunaa이고 나이는 32입니다'

출처:

https://www.geeksforgeeks.org/dunder-magic-methods-python/
https://www.journaldev.com/22460/python-str-repr-functions

0개의 댓글