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

python中判斷類型函數isinstance()示例詳解

 更新時間:2024年10月06日 09:51:29   作者:春天的菠菜  
isinstance()函數是Python的內置函數,用于判斷一個變量是否是某個類型或者是該類型的子類的實例,在Python中,所有類都繼承自object,所以任何實例都會是object的實例,本文給大家介紹python中判斷類型函數isinstance(),感興趣的朋友一起看看吧

函數isinstance()可以判斷一個變量的類型,既可以用在Python內置的數據類型如str、list、dict,也可以用在我們自定義的類,它們本質上都是數據類型。

假設有如下的 Person、Man和 Woman的定義及繼承關系如下:

class Person(object):
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender
class Man(Person):
    def __init__(self, name, gender, score):
        super(Man, self).__init__(name, gender)
        self.score = score
class Woman(Person):
    def __init__(self, name, gender, course):
        super(Woman, self).__init__(name, gender)
        self.course = course
p = Person('Tim', 'Male')
m = Man('Bob', 'Male', 88)
w = Woman('Alice', 'Female', 'English')

當我們拿到變量 p、m、w 時,可以使用 isinstance 判斷類型:

>>> isinstance(p, Person)
True    # p是Person類型
>>> isinstance(p, man)
False   # p不是Man類型
>>> isinstance(p, Woman)
False   # p不是Woman類型

這說明在繼承鏈上,一個父類的實例不能是子類類型,因為子類比父類多了一些屬性和方法。

我們再考察 m :

>>> isinstance(m, Person)
True    # m是Person類型
>>> isinstance(m, Man)
True    # m是Man類型
>>> isinstance(m, Woman)
False   # m不是Woman類型

mMan類型,不是Woman類型,這很容易理解。但是,m也是Person類型,因為Man繼承自Person,雖然它比Person多了一些屬性和方法,但是,把 m 看成Person的實例也是可以的。

這說明在一條繼承鏈上,一個實例可以看成它本身的類型,也可以看成它父類的類型。

任務

請根據繼承鏈的類型轉換,依次思考 w是否是 Person,Man,Woman,object 類型,并使用isinstance()判斷來驗證您的答案。

class Person(object):
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender
class Man(Person):
    def __init__(self, name, gender, score):
        super(Man, self).__init__(name, gender)
        self.score = score
class Woman(Person):
    def __init__(self, name, gender, course):
        super(Woman, self).__init__(name, gender)
        self.course = course
w = Woman('Alice', 'Female', 'English')
print (isinstance(w,Person))
print (isinstance(w, Man))
print (isinstance(w, Woman))
print (isinstance(w, object ))
#運行結果
#True
#False
#True
#True

到此這篇關于python中判斷類型函數isinstance()示例詳解的文章就介紹到這了,更多相關python判斷類型函數isinstance()內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用Python實現批量ping操作方法

    使用Python實現批量ping操作方法

    這篇文章主要介紹了使用Python實現批量ping操作方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • python如何利用traceback獲取詳細的異常信息

    python如何利用traceback獲取詳細的異常信息

    異常信息的獲取對于程序的調試非常重要,可以有助于快速定位有錯誤程序語句的位置。這篇文章主要給大家介紹了關于python如何利用traceback獲取詳細的異常信息的相關資料,需要的朋友可以參考下
    2021-06-06
  • Python網絡請求之Requests庫的高級功能運用

    Python網絡請求之Requests庫的高級功能運用

    在這篇文章中我們將進一步深入學習Requests庫的高級功能,包括處理重定向,設置超時,處理大文件以及錯誤和異常處理,需要的朋友可以參考下
    2023-08-08
  • Python中join()方法完全使用指南(參數要求與常見用法)

    Python中join()方法完全使用指南(參數要求與常見用法)

    join()是Python中字符串操作的核心方法之一,但許多開發(fā)者在使用時經常遇到TypeError或意外結果,本文將全面解析' '.join()的參數要求,通過實際示例展示正確用法,并總結常見問題的解決方案,需要的朋友可以參考下
    2025-06-06
  • python開發(fā)飛機大戰(zhàn)游戲

    python開發(fā)飛機大戰(zhàn)游戲

    這篇文章主要為大家詳細介紹了python開發(fā)飛機大戰(zhàn)游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • python txt中的文件,逐行讀取并且每行賦值給變量問題

    python txt中的文件,逐行讀取并且每行賦值給變量問題

    這篇文章主要介紹了python txt中的文件,逐行讀取并且每行賦值給變量問題,具有很好的參考價值,希望對大家有所幫助。
    2023-02-02
  • 用代碼幫你了解Python基礎(1)

    用代碼幫你了解Python基礎(1)

    這篇文章主要用代碼幫你了解Python基礎,使用數據類型和變量以及字符串和格式化的示例代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 如何表示python中的相對路徑

    如何表示python中的相對路徑

    在本篇文章里小編給大家分享的是關于python相對路徑寫法以及相關知識點內容,需要的朋友們可以學習下。
    2020-07-07
  • python transpose()處理高維度數組的軸變換的實現

    python transpose()處理高維度數組的軸變換的實現

    本文主要介紹了python transpose()處理高維度數組的軸變換的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-09-09
  • python 反向輸出字符串的方法

    python 反向輸出字符串的方法

    今天小編就為大家分享一篇python 反向輸出字符串的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07

最新評論

海阳市| 灵宝市| 七台河市| 内丘县| 新乐市| 怀来县| 盘山县| 常熟市| 昌吉市| 洛浦县| 麻栗坡县| 镇巴县| 大渡口区| 托克托县| 安仁县| 清徐县| 遂川县| 和政县| 株洲县| 旬阳县| 静海县| 阿勒泰市| 富平县| 漾濞| 石景山区| 高碑店市| 浦东新区| 拜泉县| 涞水县| 东城区| 台东县| 丘北县| 永兴县| 明星| 牡丹江市| 乌鲁木齐县| 灯塔市| 碌曲县| 侯马市| 滕州市| 大渡口区|