最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)檢查類(lèi)型:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

類(lèi)A的所有子類(lèi): [<class '__main__.C'>]
類(lèi)B的所有子類(lèi): [<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中Event實(shí)現(xiàn)線程間同步介紹

    python中Event實(shí)現(xiàn)線程間同步介紹

    這篇文章主要介紹了python中Event實(shí)現(xiàn)線程間同步,Event是python線程間同步一種常用的方法,下列內(nèi)容總結(jié)需要的朋友可以參考一下
    2022-04-04
  • python中decimal模塊的具體使用

    python中decimal模塊的具體使用

    本文主要介紹了python中decimal模塊的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • python實(shí)現(xiàn)多線程并得到返回值的示例代碼

    python實(shí)現(xiàn)多線程并得到返回值的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)多線程并得到返回值的相關(guān)知識(shí),包括帶有返回值的多線程及實(shí)現(xiàn)過(guò)程解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • pytorch隨機(jī)采樣操作SubsetRandomSampler()

    pytorch隨機(jī)采樣操作SubsetRandomSampler()

    這篇文章主要介紹了pytorch隨機(jī)采樣操作SubsetRandomSampler(),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • TensorFlow神經(jīng)網(wǎng)絡(luò)創(chuàng)建多層感知機(jī)MNIST數(shù)據(jù)集

    TensorFlow神經(jīng)網(wǎng)絡(luò)創(chuàng)建多層感知機(jī)MNIST數(shù)據(jù)集

    這篇文章主要為大家介紹了TensorFlow神經(jīng)網(wǎng)絡(luò)如何創(chuàng)建多層感知機(jī)MNIST數(shù)據(jù)集的實(shí)現(xiàn)過(guò)程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • python?Scala函數(shù)與訪問(wèn)修辭符實(shí)例詳解

    python?Scala函數(shù)與訪問(wèn)修辭符實(shí)例詳解

    這篇文章主要為大家介紹了python?Scala函數(shù)與訪問(wèn)修辭符實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • python中隨機(jī)函數(shù)random用法實(shí)例

    python中隨機(jī)函數(shù)random用法實(shí)例

    這篇文章主要介紹了python中隨機(jī)函數(shù)random用法,實(shí)例分析了random函數(shù)的相關(guān)使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 用Python實(shí)現(xiàn)寫(xiě)倒序輸出(任意位數(shù))

    用Python實(shí)現(xiàn)寫(xiě)倒序輸出(任意位數(shù))

    這篇文章主要介紹了用Python實(shí)現(xiàn)寫(xiě)倒序輸出(任意位數(shù)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python學(xué)習(xí)之函數(shù)的定義與使用詳解

    Python學(xué)習(xí)之函數(shù)的定義與使用詳解

    函數(shù)是具有某種特定功能的代碼塊,可以重復(fù)使用(在前面數(shù)據(jù)類(lèi)型相關(guān)章節(jié)。它使得我們的程序更加模塊化,不需要編寫(xiě)大量重復(fù)的代碼。本文將詳細(xì)介紹Python中函數(shù)的定義與使用,感興趣的可以學(xué)習(xí)一下
    2022-03-03
  • python標(biāo)準(zhǔn)庫(kù)ElementTree處理xml

    python標(biāo)準(zhǔn)庫(kù)ElementTree處理xml

    這篇文章主要為大家介紹了python標(biāo)準(zhǔn)庫(kù)ElementTree處理xml的方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05

最新評(píng)論

修水县| 洪江市| 峨山| 屯留县| 寿光市| 陕西省| 郁南县| 温宿县| 双峰县| 西充县| 桐梓县| 天水市| 读书| 朝阳市| 福清市| 石狮市| 聊城市| 子洲县| 乌拉特中旗| 五原县| 北川| 轮台县| 儋州市| 金塔县| 延边| 旬阳县| 湘潭县| 雷山县| 茶陵县| 交城县| 洛扎县| 麟游县| 华容县| 万全县| 织金县| 九江市| 南汇区| 西安市| 大丰市| 盈江县| 依兰县|