python裡既然有了isinstance 函式為什麼還需要issubclass函式
阿新 • • 發佈:2019-01-01
issubclass函式與isinstance 函式比較接近,isinstance 函式是判斷一個例項物件與類的關係,issubclass函式判斷類與類的關係。
結果輸出如下: 五子棋遊戲開發
並且isinstance 函式可以接受任何型別例項,但issubclass函式不行,會輸出TypeError異常。
# File: builtin-issubclass-example-1.py class A: pass class B: pass class C(A): pass class D(A, B): pass def dump(object): print(object, "=>",) if issubclass(object, A): print("A",) if issubclass(object, B): print("B",) if issubclass(object, C): print("C",) if issubclass(object, D): print("D",) print() dump(A) dump(B) dump(C) dump(D) dump(0) dump("string")
結果輸出如下:
= RESTART: D:/work/csdn/python_Game1/example/builtin-issubclass-example-1.py =
<class '__main__.A'> =>
A
<class '__main__.B'> =>
B
<class '__main__.C'> =>
A
C
<class '__main__.D'> =>
A
B
D
0 =>
Traceback (most recent call last):
File "D:/work/csdn/python_Game1/example/builtin-issubclass-example-1.py", line 31, in <module>
dump(0)
File "D:/work/csdn/python_Game1/example/builtin-issubclass-example-1.py", line 17, in dump
if issubclass(object, A):
TypeError: issubclass() arg 1 must be a class
>>>