從零開始學python | Python中的isinstance是什么以及如何實現它?

      網友投稿 1185 2025-04-01

      Python是當今市場上功能最強大的編程語言之一。Python還支持在其生態系統中實現其他編程語言,例如Java,C和C ++。在Python生態系統中可用的許多模塊和功能中,與眾不同的一個就是Python中的isinstance。因此,在本文中,我們將詳細介紹該實例,其用途以及它帶來的功能。


      本文將介紹以下指針,

      What is Isinstance in Python?

      Parameter and Return Value of Isinstance

      Use of Type in Python

      Difference between Type() and Isinstance

      讓我們開始!

      Python中的Isinstance是什么?

      Python isinstance用于檢查作為參數的第一個對象是否是作為第二個參數的classinfo類的實例或子類。

      Python中isinstance的語法如下。

      isinstance(object, classinfo)

      讓我們看看Python中的Isinstance具有哪些參數和返回值,

      實例的參數和返回值

      范圍

      既然您已經知道isinstance的語法,那么讓我們仔細看看它所考慮的參數。

      對象:這是需要檢查的對象。

      Classinfo:這是需要檢查對象的類,信息或類的元組。

      返回值

      在程序中使用isinstance時,返回值取決于許多條件,如以下指針中所述。

      如果對象是classinfo的子類或類的元組,則返回True。

      如果對象不是classinfo或類的元組的子類,則返回False。

      如果在特定情況下classinfo不是類型或類型的元組,則將typeerror異常引發到用戶的屏幕上。

      例子

      為了更好地理解isinstance的用法,讓我們看一些示例。

      范例#1

      class Foo: a = 5 fooInstance = Foo() print(isinstance(fooInstance, Foo)) print(isinstance(fooInstance, (list, tuple))) print(isinstance(fooInstance, (list, tuple, Foo)))

      輸出

      true

      flase

      從零開始學python | Python中的isinstance是什么以及如何實現它?

      true

      Python中的Isinstance:示例#2

      numbers = [1, 2, 3] result = isinstance(numbers, list) print(numbers,'instance of list?', result) result = isinstance(numbers, dict) print(numbers,'instance of dict?', result) result = isinstance(numbers, (dict, list)) print(numbers,'instance of dict or list?', result) number = 5 result = isinstance(number, list) print(number,'instance of list?', result) result = isinstance(number, int) print(number,'instance of int?', result)

      輸出

      [1,2,3]列表的實例?真的

      [1,2,3] dict的實例?錯誤的

      [1,2,3]字典或列表的實例?真的

      清單的5個實例?錯誤的

      5個int實例?真的

      例子#3

      # Python code for isinstance() class Test: a = 5 TestInstance = Test() print(isinstance(TestInstance, Test)) print(isinstance(TestInstance, (list, tuple))) print(isinstance(TestInstance, (list, tuple, Test)))

      輸出

      true

      false

      true

      讓我們繼續閱讀“ Python中的實例”一文,并了解Type方法的用法,

      在Python中使用Type

      與isinstance相似,Python中還有另一個內置方法,用于檢查運行時正在使用的類型pf變量。如果通過類型方法傳遞單個參數或對象,則它將返回運行時正在使用的對象的類型。

      為了更好地理解這一點,請看下面的示例。

      # Python code type() with a single object parameter x = 5 s = "sampleoutput" y = [1,2,3] print(type(x)) print(type(s)) print(type(y))

      輸出

      類'int'

      'str'類

      類“列表”

      Example#1.2

      # Python code for type() with a name, # bases and dict parameter o1 = type('X', (object,), dict(a='Foo', b=12)) print(type(o1)) print(vars(o1)) class test: a = 'Foo' b = 12 o2 = type('Y', (test,), dict(a='Foo', b=12)) print(type(o2)) print(vars(o2))

      輸出

      {'b':12,'a':'Foo','__dict__':,'__doc__':無,'__weakref__':}

      {'b':12,'a':'Foo','__ doc__':無}

      讓我們比較一下Python中的Type和Isinstance,

      Type()和Isinstance之間的區別

      Python中的type和isinstance提供兩個非常不同的功能。看一下下面的指針,可以更好地理解它們之間的區別。

      如果需要檢查對象是否具有某種類型,則最好使用isinstance。這是因為isinstance將能夠檢查在第一個參數中傳遞的對象是否與在第二個參數中傳遞的對象具有相同的類型。

      另一方面,當您只需要檢查特定對象的類型而不將其與另一個對象進行比較時,使用type更為可取。

      例子

      #Python code to illustrate duck typing class User(object): def __init__(self, firstname): self.firstname = firstname @property def name(self): return self.firstname class Animal(object): pass class Fox(Animal): name = "Fox" class Bear(Animal): name = "Bear" # Use the .name attribute (or property) regardless of the type for a in [User("SampleOutput"), Fox(), Bear()]: print(a.name)

      輸出

      SampleOutput

      Fox

      Bear

      不使用類型方法的另一個原因是缺乏繼承。請看下面共享的示例,以更好地理解這一點。

      #python code to illustrate the lack of #support for inheritance in type() class MyDict(dict): """A normal dict, that is always created with an "initial" key""" def __init__(self): self["initial"] = "some data" d = MyDict() print(type(d) == dict) print(type(d) == MyDict) d = dict() print(type(d) == dict) print(type(d) == MyDict)

      輸出

      flase

      ture

      ture

      flase

      各位,這使我們到了本文的結尾。希望您了解Python中的Isinstance及其作用。

      Python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:生產任務管理系統(生產任務管理系統主控臺)
      下一篇:word的使用技巧大全(Word技巧大全)
      相關文章
      亚洲熟妇无码八AV在线播放| 国产成人亚洲精品无码AV大片| 国产精品亚洲精品日韩动图| 亚洲日韩久久综合中文字幕| 亚洲18在线天美| 久久久亚洲欧洲日产国码农村| 亚洲精品高清无码视频| 亚洲无码在线播放| 亚洲乱码一区二区三区在线观看| 久久99亚洲综合精品首页| 亚洲一区二区三区在线视频| 亚洲一区二区三区乱码A| 国产亚洲精品看片在线观看 | 国产AV日韩A∨亚洲AV电影 | 亚洲成a人片在线不卡一二三区| 亚洲综合精品成人| 亚洲久热无码av中文字幕| 亚洲人成自拍网站在线观看| 亚洲欧美日韩一区二区三区| 亚洲无码一区二区三区| 亚洲av无一区二区三区| www.亚洲精品.com| 国产亚洲精品激情都市| 国产亚洲免费的视频看| 亚洲av伊人久久综合密臀性色| 亚洲AV无码久久寂寞少妇| 亚洲午夜精品一区二区| 亚洲精品综合久久中文字幕| 亚洲熟妇色自偷自拍另类| 亚洲av永久无码精品三区在线4| 激情综合亚洲色婷婷五月| 日韩亚洲国产综合高清| 亚洲av纯肉无码精品动漫| 亚洲精品无码永久在线观看| 国产亚洲av人片在线观看| 久久噜噜噜久久亚洲va久| 久久亚洲中文字幕精品有坂深雪 | 亚洲第一区精品观看| 亚洲性猛交XXXX| 亚洲国产精品线在线观看| 亚洲精品人成电影网|