一、vars()函數的概述
vars()函數是Python內置函數之一,主要用於返回對象的屬性和值的字典。
當對象參數為空時,返回當前作用域內的所有變數和值的字典;當對象參數為實例對象時,返回該實例對象的所有屬性和值的字典;當對象參數為類對象時,返回該類的屬性、方法和值的字典。
vars()函數的語法格式為:vars(object)
二、 vars()函數在實例對象中的應用舉例
class Person: def __init__(self, name, age): self.name = name self.age = age p = Person('Tom',28) print(vars(p))
上述代碼中,我們創建了一個Person類,並創建了一個Person類的實例對象p。接著,我們通過vars()函數輸出了p的所有屬性和值的字典。
該段代碼輸出結果如下:
{'name': 'Tom', 'age': 28}
三、vars()函數在類對象中的應用舉例
class Person: count = 0 def __init__(self, name, age): self.name = name self.age = age Person.count += 1 p1 = Person('Tom',28) p2 = Person('Mike',30) print(vars(Person))
上述代碼中,我們創建了一個Person類,並創建了p1、p2兩個實例對象。在Person類中加入一個類變數count,並在__init__函數中為count自增。接著,我們通過vars()函數輸出了Person類的屬性、方法和值的字典。
該段代碼輸出結果如下:
{'__module__': '__main__', 'count': 2, '__init__': , '__dict__': , '__weakref__': , '__doc__': None}
四、vars()函數在局部作用域中的應用舉例
def foo(): a = 1 b = 2 print(vars()) foo()
上述代碼中,我們創建了一個名為foo的函數,並在foo函數中定義了兩個局部變數a和b。進一步地,我們通過vars()函數輸出了當前局部作用域內的所有變數和值的字典。
該段代碼輸出結果如下:
{'a': 1, 'b': 2}
五、使用vars()函數動態修改實例對象屬性
class Person: def __init__(self, name, age): self.name = name self.age = age p = Person('Tom',28) print(vars(p)) vars(p)['age'] = 30 print(vars(p))
上述代碼中,我們創建了一個Person類,並創建了一個Person類的實例對象p。接著,我們通過vars()函數輸出了p的所有屬性和值的字典,並使用vars()函數動態修改了p的age屬性為30。
該段代碼輸出結果如下:
{'name': 'Tom', 'age': 28} {'name': 'Tom', 'age': 30}
六、 vars()函數的注意事項
使用vars()函數需要注意以下幾點:
1、vars()函數只能在局部作用域和實例對象中獲取相應的屬性和值的字典,而不能在函數外部使用。
2、vars()函數返回的是字典對象,因此可以對其進行各種操作,例如添加、刪除、修改等。
3、vars()函數不能用於獲取全局變數的屬性和值的字典。
七、結語
vars()函數是一個實用的函數,它可以幫助我們快速了解對象的屬性和值的字典,在實際編程中具有廣泛的應用價值。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/270710.html