1. 程式人生 > >python裡既然有了isinstance 函式為什麼還需要issubclass函式

python裡既然有了isinstance 函式為什麼還需要issubclass函式

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
>>> 

Python遊戲開發入門

你也能動手修改C編譯器

紙牌遊戲開發

五子棋遊戲開發