欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python issubclass和isinstance函數(shù)的具體使用

 更新時(shí)間:2023年02月07日 14:33:45   作者:NOGE2022  
本文主要介紹了Python issubclass和isinstance函數(shù)的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

Python 提供了如下兩個(gè)函數(shù)來(lái)檢查類型:

  • issubclass(cls, class_or_tuple):檢查 cls 是否為后一個(gè)類或元組包含的多個(gè)類中任意類的子類。
  • isinstance(obj, class_or_tuple):檢查 obj 是否為后一個(gè)類或元組包含的多個(gè)類中任意類的對(duì)象。

通過(guò)使用上面兩個(gè)函數(shù),程序可以方便地先執(zhí)行檢查,然后才調(diào)用方法,這樣可以保證程序不會(huì)出現(xiàn)意外情況。

如下程序示范了通過(guò)這兩個(gè)函數(shù)來(lái)檢查類型:

# 定義一個(gè)字符串
hello ="Hello";
# "Hello"是str類的實(shí)例,輸出True
print('"Hello"是否是str類的實(shí)例: ',isinstance(hello, str))
# "Hello"是object類的子類的實(shí)例,輸出True
print('"Hello"是否是object類的實(shí)例: ',isinstance(hello, object))
# str是object類的子類,輸出True
print('str是否是object類的子類: ',issubclass(str, object))
# "Hello"不是tuple類及其子類的實(shí)例,輸出False
print('"Hello"是否是tuple類的實(shí)例: ',isinstance(hello, tuple))
# str不是tuple類的子類,輸出False
print('str是否是tuple類的子類: ',issubclass(str, tuple))
# 定義一個(gè)列表
my_list =[2,4]
# [2, 4]是list類的實(shí)例,輸出True
print('[2, 4]是否是list類的實(shí)例: ',isinstance(my_list, list))
# [2, 4]是object類的子類的實(shí)例,輸出True
print('[2, 4]是否是object類及其子類的實(shí)例: ',isinstance(my_list, object))
# list是object類的子類,輸出True
print('list是否是object類的子類: ',issubclass(list, object))
# [2, 4]不是tuple類及其子類的實(shí)例,輸出False
print('[2, 4]是否是tuple類及其子類的實(shí)例: ',isinstance([2,4], tuple))
# list不是tuple類的子類,輸出False
print('list是否是tuple類的子類: ',issubclass(list, tuple))

通過(guò)上面程序可以看出,issubclass() 和 isinstance() 兩個(gè)函數(shù)的用法差不多,區(qū)別只是 issubclass() 的第一個(gè)參數(shù)是類名,而 isinstance() 的第一個(gè)參數(shù)是變量,這也與兩個(gè)函數(shù)的意義對(duì)應(yīng):issubclass 用于判斷是否為子類,而 isinstance() 用于判斷是否為該類或子類的實(shí)例。

issubclass() 和 isinstance() 兩個(gè)函數(shù)的第二個(gè)參數(shù)都可使用元組。例如如下代碼:

data =(20,'fkit')
print('data是否為列表或元組: ',isinstance(data,(list, tuple)))# True
# str不是list或者tuple的子類,輸出False
print('str是否為list或tuple的子類: ',issubclass(str,(list, tuple)))
# str是list或tuple或object的子類,輸出True
print('str是否為list或tuple或object的子類 ',issubclass(str,(list, tuple, object)))

此外,Python 為所有類都提供了一個(gè) __bases__ 屬性,通過(guò)該屬性可以查看該類的所有直接父類,該屬性返回所有直接父類組成的元組。例如如下代碼:

class A:
pass
class B:
pass
classC(A, B):
pass
print('類A的所有父類:', A.__bases__)
print('類B的所有父類:', B.__bases__)
print('類C的所有父類:', C.__bases__)

運(yùn)行上面程序,可以看到如下運(yùn)行結(jié)果:

類A的所有父類: (<class 'object'>,)
類B的所有父類: (<class 'object'>,)
類C的所有父類: (<class '__main__.A'>, <class '__main__.B'>)

從上面的運(yùn)行結(jié)果可以看出,如果在定義類時(shí)沒(méi)有顯式指定它的父類,則這些類默認(rèn)的父類是 object 類。

Python 還為所有類都提供了一個(gè) __subclasses__() 方法,通過(guò)該方法可以查看該類的所有直接子類,該方法返回該類的所有子類組成的列表。例如在上面程序中增加如下兩行:

print('類A的所有子類:', A.__subclasses__())
print('類B的所有子類:', B.__subclasses__())

運(yùn)行上面代碼,可以看到如下輸出結(jié)果:

類A的所有子類: [<class '__main__.C'>]
類B的所有子類: [<class '__main__.C'>]

到此這篇關(guān)于Python issubclass和isinstance函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)Python issubclass和isinstance函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python圖像處理Pillow庫(kù)的安裝使用

    Python圖像處理Pillow庫(kù)的安裝使用

    本文詳細(xì)介紹了Python第三方庫(kù)Pillow的使用,通過(guò)導(dǎo)入Pillow庫(kù)、打開(kāi)和保存圖像、基本圖像操作以及圖像處理高級(jí)功能的代碼示例,我們了解了Pillow庫(kù)的強(qiáng)大功能和靈活性,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • Python OpenCV 圖像區(qū)域輪廓標(biāo)記(框選各種小紙條)

    Python OpenCV 圖像區(qū)域輪廓標(biāo)記(框選各種小紙條)

    這篇文章主要介紹了Python OpenCV 圖像區(qū)域輪廓標(biāo)記(框選各種小紙條),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 解決CentOS下ImportError: No module named '_sqlite3'的問(wèn)題

    解決CentOS下ImportError: No module named &a

    這篇文章主要介紹了解決CentOS下ImportError: No module named '_sqlite3'的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 詳解python之配置日志的幾種方式

    詳解python之配置日志的幾種方式

    本篇文章主要介紹了詳解python之配置日志的幾種方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Python文件操作函數(shù)用法實(shí)例詳解

    Python文件操作函數(shù)用法實(shí)例詳解

    這篇文章主要介紹了Python文件操作函數(shù)用法實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • NumPy迭代數(shù)組的實(shí)現(xiàn)

    NumPy迭代數(shù)組的實(shí)現(xiàn)

    本文主要介紹了NumPy迭代數(shù)組的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python開(kāi)發(fā)之list操作實(shí)例分析

    python開(kāi)發(fā)之list操作實(shí)例分析

    這篇文章主要介紹了python開(kāi)發(fā)之list操作方法,結(jié)合實(shí)例形式分析了list操作的具體用法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-02-02
  • 在Python的列表中利用remove()方法刪除元素的教程

    在Python的列表中利用remove()方法刪除元素的教程

    這篇文章主要介紹了在Python的列表中利用remove()方法刪除元素的教程,是Python入門(mén)中的基礎(chǔ)知識(shí),注意其和pop()方法的區(qū)別,需要的朋友可以參考下
    2015-05-05
  • python模塊導(dǎo)入的方法

    python模塊導(dǎo)入的方法

    在本篇文章里小編給大家分享的是一篇關(guān)于python模塊導(dǎo)入方法知識(shí)點(diǎn)總結(jié),需要的朋友們可以學(xué)習(xí)下。
    2019-10-10
  • 分享給Python新手們的幾道簡(jiǎn)單練習(xí)題

    分享給Python新手們的幾道簡(jiǎn)單練習(xí)題

    這篇文章主要給學(xué)習(xí)Python的新手們分享了幾道簡(jiǎn)單練習(xí)題,文中給出了詳細(xì)的示例代碼供大家學(xué)習(xí)參考,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09

最新評(píng)論