XML DOM 獲取節點值
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
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小時內刪除侵權內容。