isinstance()和insubclass()

??isinstance()issubclass() 的功能與用法??

??1. isinstance(obj, classinfo)??

??功能??:檢查對象 obj 是否是 classinfo 類(或其子類)的實例。
??返回值??:TrueFalse
??用法??:

class Animal: pass
class Dog(Animal): passdog = Dog()
print(isinstance(dog, Dog))    # True(直接類)
print(isinstance(dog, Animal)) # True(父類)
print(isinstance(dog, str))   # False(無關類)

??特點??:

  • 支持檢查多個類(元組形式):
    print(isinstance(dog, (Dog, Animal, str)))  # True(匹配任一即可)
  • 適用于動態類型校驗(如函數參數驗證)。

??2. issubclass(cls, classinfo)??

??功能??:檢查類 cls 是否是 classinfo 的子類(或自身)。
??返回值??:TrueFalse
??用法??:

class Animal: pass
class Dog(Animal): passprint(issubclass(Dog, Animal))  # True(子類)
print(issubclass(Dog, Dog))     # True(自身)
print(issubclass(Dog, object))  # True(所有類繼承自 object)
print(issubclass(Animal, Dog))  # False

??特點??:

  • 同樣支持元組檢查多類:
    print(issubclass(Dog, (Animal, str)))  # True
  • 常用于類關系設計或框架中約束繼承關系。

??核心區別??

??函數????作用對象????檢查目標????典型場景??
isinstance()對象 (obj)是否是某類的實例運行時類型驗證
issubclass()類 (cls)是否是某類的子類設計時繼承關系校驗

??示例場景??:

def process_animal(animal):if not isinstance(animal, Animal):raise TypeError("必須傳入 Animal 或其子類實例")# 處理邏輯...class Bird(Animal): pass
process_animal(Bird())  # 通過
process_animal("abc")   # 報錯

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/99090.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/99090.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/99090.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

判斷QMetaObject::invokeMethod()里的函數是否調用成功

今天,在Qt編程,碰到一個需要使用invokeMethod方式來獲取函數是否執行成功的情況。 ? ? invokeMethod()即可以同步調用,也可以異步調用。若調用者、被調用者,都在同一個線程,則是同步調用;若調用者、被調用…

【linux】特殊權限

us對文件:用戶執行該文件時,會以文件所有者的權限運行chmod us filename # 符號模式 chmod 4755 filename # 數字模式(4表示SetUID)典型應用:/usr/bin/passwd(允許普通用戶修改自己的密碼,…

OpenCV:指紋識別

目錄 一、核心算法 1:SIFT 特征提取(尺度不變特征變換) 1.1 算法原理(4 步核心流程) 1.2 重點代碼實現與參數解析 1.3 關鍵輸出解讀 二、核心算法 2:FLANN 特征匹配(快速最近鄰搜索&#x…

快速排序:高效的分治排序算法

快速排序因其平均時間復雜度$O(n\log n)$而成為廣泛應用的高效排序算法。其核心是分治法: 選擇基準 (Pivot):從待排序序列中選取一個元素(如第一個元素$arr[0]$)。 分區 (Partition):將序列重新排列,所有小于基準的元素置于其前,大于或等于的置于其后。基準元素最終位于…

網絡編程之UDP廣播與粘包問題

一,廣播簡介從上述講的例?中,不管是TCP協議還是UDP協議,都是”單播”, 就是”點對點”的進?通信,如果要對網絡里面的所有主機進?通信,實現”點對多”的通信,我們可以使用UDP中的?播通信。 理論上可以像…

教育領域大模型生成題目安全研究報告

教育領域大模型生成題目安全研究報告 一、研究背景與意義 隨著大語言模型(LLM)在教育領域的深度應用,自動生成題目已成為提升教學效率、實現個性化教學的關鍵技術手段,廣泛應用于課堂練習、作業布置、考試命題等場景。然而&…

Android安卓項目調試之Gradle 與 Gradle Wrapper的概念以及常用gradle命令深度詳解-優雅草卓伊凡

Android安卓項目調試之Gradle 與 Gradle Wrapper的概念以及常用gradle命令深度詳解-優雅草卓伊凡好的,我們來詳細梳理一下 Android 開發中 Gradle 的常用配置和調試命令。這對于每一位 Android 開發者來說都是必須掌握的核心技能。第一部分:Gradle 與 Gr…

Maven入門_簡介、安裝與配置

ZZHow(ZZhow1024) 參考課程: 【尚硅谷新版Maven教程】 [https://www.bilibili.com/video/BV1JN411G7gX] 一、Maven簡介 02_依賴管理工具 解決 jar 包的規模問題解決 jar 包的來源問題解決 jar 包的導入問題解決 jar 包之間的依賴 03_構建工具 我們沒有注意過…

Spark(1):不依賴Hadoop搭建Spark環境

不依賴Hadoop搭建Spark環境0 概述1 單機安裝Spark1.1 下載Spark預編譯包1.2 解壓和設置1.3 配置環境變量1.4 驗證安裝2 Spark運行模式2.1 Local模式(本地模式)2.1.1 Spark Shell2.1.1.1 Python版的Shell2.1.1.2 Scala版的Shell2.1.2 提交獨立的Spark應用…

【ThreeJs】【自帶依賴】Three.js 自帶依賴指南

🛠? Three.js 輔助庫生態手冊 定位:覆蓋 90% 開發場景的工具選型實操指南,區分「入門必備」和「進階擴展」。 適用人群:Three.js 新手(≥ r132 版本)、需要規范開發流程的團隊。 1. 控制器(Co…

Mac電腦上如何打印出字體圖標

背景 我今天打開了一個之前開發的APP,看到項目中用到了字體圖標,發現有個“面條”圖標用錯了,想著修改一下吧。然后用輸入法打出”面條“,在輸入法的彈窗中就一直往下找,發現并沒有出現圖標。 想著打出”面條圖標“也沒…

當AI遇上數據庫:Text2Sql.Net如何讓“說人話查數據“成為現實

一句話概括:還在為寫復雜SQL而頭疼?Text2Sql.Net讓你用自然語言就能查數據庫,堪稱程序員的"數據庫翻譯官"! 🎯 引言:從"SQL地獄"到"自然語言天堂" 想象一下這樣的場景&…

整體設計 之 緒 思維導圖引擎 之 引 認知系統 之8 之 序 認知元架構 之4 統籌:范疇/分類/目錄/條目 之2 (豆包助手 之6)

問題Q68、我們現在僅僅分析了 認知演進 的 “進”的問題,通過層次結構 和 統籌 的同構約束 給出了 不同對象及其對應的操作和約束。 --這句話 你能完全理解嗎(這意味著 完整的程序細節設計)。 還沒有分析的還有 “演” 以及組合詞 “演進” -…

開始 ComfyUI 的 AI 繪圖之旅-Qwen-Image-Edit(十二)

文章標題一、Qwen-Image-Edit1.ComfyOrg Qwen-Image-Edit 直播回放2.Qwen-Image-Edit ComfyUI 原生工作流示例2.1 工作流文件2.2 模型下載3.3 按步驟完成工作流一、Qwen-Image-Edit Qwen-Image-Edit 是 Qwen-Image 的圖像編輯版本,基于20B模型進一步訓練&#xff0c…

機械制造專屬ERP:降本增效與數字轉型的關鍵

轉型升級壓力下,ERP系統是機械企業破局的得力助手。本文深入解析ERP的核心功能、選型要點與實施價值,助您精準選型,賦能智能制造,全面提升競爭力。在數字化浪潮席卷之下,機械制造企業正面臨提質、增效、降本的關鍵轉型…

npm / yarn / pnpm 包管理器對比與最佳實踐(含國內鏡像源配置與緩存優化)

這篇不是“誰更快”的玄學討論,而是把團隊能落地的做法一次說清:如何選型、如何統一版本、如何把鏡像與緩存配好、如何在 CI 和 Monorepo 下穩住“可重復構建”。 一、結論先說在前 單倉庫 / 以穩定為先:直接用 npm(配合 npm ci) 足夠,維護成本低,生態一等一,Node 16.1…

Python項目全面打包指南:從EXE到綠色軟件包

?? Python項目全面打包指南:從EXE到綠色軟件包 文章目錄 ?? Python項目全面打包指南:從EXE到綠色軟件包 1 打包基礎概念與工具選型 1.1 核心打包概念 1.2 工具對比與選型 2 項目環境準備與依賴管理 2.1 創建和管理虛擬環境 2.2 依賴管理最佳實踐 2.3 依賴導出與規范文件處…

JAVA:Spring Boot 集成 FFmpeg 實現多媒體處理

1、簡述 在現代 Web 應用中,音視頻處理需求越來越常見,例如:視頻轉碼、截圖、音頻提取、格式轉換等。FFmpeg 是一個功能極其強大的開源音視頻處理工具,可以幫助我們高效完成這些任務。本文將介紹如何在 Spring Boot 項目中集成 FFmpeg,并實現一些常見的應用場景。 2、為什…

推薦一款智能三防手機:IP68+天璣6300+PoC對講+夜視

在戶外探險、工業巡檢及應急通信等專業領域,傳統智能手機往往難以應對復雜苛刻的環境挑戰。智能三防手機憑借其堅固的機身、專業的防護能力及定制化功能,成為眾多行業用戶的可靠工具。本文將深入解析一款集IP68防護、天璣6300處理器、PoC公網對講及夜視等…

ego(4)---檢測B樣條軌跡的障礙物進入點與退出點

障礙物進出點檢測的作用在經過 B 樣條的控制點采樣后,接下來是繞障的環節,繞障使用的是 Astar ,但在使用 Astar 之前,需要進行障礙物進出點的檢測與標記。通俗點講,這部分的作用就是為 Astar 繞障礙做前置準備。檢測進…