覆寫str()方法
__str__()
print(物件) 或 str(物件),都會呼叫父類別__str__()方法。
格式如下
<__main__.物件 object at 16進位記憶體位址>
1
2
3
4
5
6
7
8
9
10
11
class Cat:
def __init__(self, name):
self.name = name
cat = Cat("小咪")
print(cat)
print(str(cat))
# 10進位整數 位址
print(f"memory id = {id(cat)}")
# 轉成16進位
print(f"hex memory id = {hex(id(cat))}")
<__main__.Cat object at 0x10a64b860>
<__main__.Cat object at 0x10a64b860>
memory id = 4469340256
hex memory id = 0x10a64b860
super.__str__()
1
2
3
4
5
6
7
8
9
10
class Cat:
def __init__(self, name):
self.name = name
def __str__(self):
print("呼叫父類別__str__()")
# 呼叫父類別__str__()
return super().__str__()
cat = Cat("小咪")
print(cat)
呼叫父類別__str__()
<__main__.Cat object at 0x10a8e3830>
覆寫__str__()
1
2
3
4
5
6
7
8
class Cat:
def __init__(self, name):
self.name = name
def __str__(self):
return f"{self.name}"
cat = Cat("小咪")
print(cat)
小咪