本文將從多個方面詳細闡述Python中查詢變量類型的函數,主要包括以下幾點:
一、type()函數
type()函數是Python內置的函數,用於查詢變量的類型。它的使用非常簡單,只需要將變量作為參數傳遞給type()函數即可,如下所示:
a = 1 print(type(a)) #
type()函數的返回值是一個表示變量類型的type對象。針對不同類型的變量,type()函數的返回值也不同。例如:
b = "hello, world!" print(type(b)) # c = ['one', 'two', 'three'] print(type(c)) # d = {'name': 'Tom', 'age': 18} print(type(d)) #
二、isinstance()函數
isinstance()函數是Python內置的函數,用於判斷一個變量是否為某個類型。它接受兩個參數,第一個參數為待判斷的變量,第二個參數為類型。如果待判斷的變量是指定類型的對象,則返回True,否則返回False。例如:
a = 1 print(isinstance(a, int)) # True b = "hello, world!" print(isinstance(b, int)) # False c = ['one', 'two', 'three'] print(isinstance(c, list)) # True d = {'name': 'Tom', 'age': 18} print(isinstance(d, dict)) # True
三、dir()函數
dir()函數是Python內置的函數,用於查詢對象的所有屬性與方法。如果不帶參數調用dir()函數,則返回當前作用域中的所有變量、函數和模塊等名稱。例如:
a = 1 b = "hello, world!" print(dir()) # ['__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b'] c = ['one', 'two', 'three'] print(dir(c))
對於對象調用dir()函數,返回的將是該對象的所有屬性和方法的名稱列表,例如:
class Person: def __init__(self, name, age): self.name = name self.age = age def say_hello(self): print("Hello, I'm", self.name) p = Person("Tom", 18) print(dir(p))
輸出如下:
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'name', 'say_hello']
從輸出結果中可以看出,Person類有兩個屬性name和age,以及一個方法say_hello()。
四、__class__屬性
在Python中,每個對象都有一個__class__屬性,表示該對象所屬的類。通過查詢__class__屬性,我們可以得到對象的類型。例如:
a = 1 print(a.__class__) # b = "hello, world!" print(b.__class__) # c = ['one', 'two', 'three'] print(c.__class__) # d = {'name': 'Tom', 'age': 18} print(d.__class__) #
五、總結
以上就是Python查詢變量類型的函數的幾種方法,可以根據不同的需求選擇相應的方法。type()函數可以直接查詢變量的類型,isinstance()函數可以判斷一個變量是否為某個類型,dir()函數可以查詢對象的所有屬性和方法,__class__屬性可以獲取對象所屬的類。
原創文章,作者:RTXOF,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/374677.html