class PrettyPrint: def __str__(self): if len(self.__dict__): st = f"{self.__class__.__name__}(" for key, value in self.__dict__.items(): st += f'{key}={value}, ' return st[:len(st)-2] + ')' else: return f"{self.__class__.__name__}()" class Empty(PrettyPrint): pass class Person(PrettyPrint): def __init__(self, first_name, last_name, age): self.first_name = first_name self.last_name = last_name self.age = age # def __str__(self): # return f"__str__ class Person" def main(): empty = Empty() print(empty) # artem = Person('Artem', 'Egorov', 33) # ivan = Person('Ivan', 'Ivanov', 45) # print(artem) # # print(ivan) if __name__ == '__main__': main()