<__main__.Boat object at 0x7fc678e66cd0> even after using __str__ code example
Example 1: override python print for class
>>> class Test:
... def __repr__(self):
... return "Test()"
... def __str__(self):
... return "member of Test"
...
>>> t = Test()
>>> t
Test()
>>> print(t)
member of Test
Example 2: python __repr__
class Person:
name = ""
age = 0
def __init__(self, personName, personAge):
self.name = personName
self.age = personAge
def __repr__(self):
return {'name':self.name, 'age':self.age}
def __str__(self):
return 'Person(name='+self.name+', age='+str(self.age)+ ')'
Example 3: <__main__.boat object at 0x7fc678e66cd0> even after using __str__
import math
import os
import random
import re
import sys
class Car:
def _init_(self,speed,unit):
self.speed=speed
self.unit=unit
def __str__(self):
return "Car with the maximum speed of {} {}".format(self.speed,self.unit)
class Boat:
def _init_(self,speed):
self.speed=speed
def __str__(self):
return "Boat with the maximum speed of {} knots".format(self.speed)
check the indentation of Boat class __str__() method, it should be as shown below.
class Boat:
def _init_(self,speed):
self.speed=speed
def __str__(self):
return "Boat with the maximum speed of {} knots".format(self.speed)