一、vars函數的引入
在Python開發中,我們經常需要查看對象的屬性和值。Python提供了一個內置函數vars(),它返回一個對象屬性和其值的字典。
class Person: def __init__(self, name, age): self.name = name self.age = age person = Person("張三", 18) print(vars(person)) # 輸出結果:{'name': '張三', 'age': 18}
在上面的例子中,我們定義了一個Person類,並創建了一個person對象。通過vars(person)方法,我們可以獲取到person對象中所有屬性的名稱和對應的值,並以字典的形式返回。
二、vars函數的參數
vars函數也可以接收一個參數,如果傳遞給vars函數一個對象,它會返回該對象的屬性和屬性值。如果不傳遞參數,vars函數返回當前作用域中的所有變數。
# 獲取當前作用域中的所有變數 print(vars()) a = 10 b = "hello" print(vars()) # 輸出結果:{'a': 10, 'b': 'hello'}
在上面的例子中,我們先調用了vars()函數獲取當前作用域中的所有變數,輸出的結果是一個字典,不包含任何變數。然後我們定義了兩個變數a和b,再次調用vars()函數,此時輸出結果包含了兩個變數a和b。
三、vars函數的應用
1. 動態更新對象屬性
通過vars函數獲取到一個對象的屬性和值之後,我們可以動態更新該對象的屬性值。
class Person: def __init__(self, name, age): self.name = name self.age = age person = Person("張三", 18) print(vars(person)) # 輸出結果:{'name': '張三', 'age': 18} vars(person)['name'] = '李四' print(vars(person)) # 輸出結果:{'name': '李四', 'age': 18}
在上面的例子中,我們先創建了一個person對象,並使用vars()函數獲取到person對象中所有屬性的名稱和對應的值。然後我們使用vars(person)[‘name’]的方式可以獲取到person對象的屬性name的值,並將其修改為’李四’。最後再次調用vars(person),可以看到person對象的name屬性已經更新為’李四’。
2. 動態添加對象屬性
通過vars函數,我們可以動態地為對象添加屬性。
class Person: def __init__(self, name, age): self.name = name self.age = age person = Person("張三", 18) print(vars(person)) # 輸出結果:{'name': '張三', 'age': 18} vars(person)['gender'] = '男' print(vars(person)) # 輸出結果:{'name': '張三', 'age': 18, 'gender': '男'}
在上面的例子中,我們使用vars(person)[‘gender’]的方式可以為person對象新添加一個屬性gender,並將其值設置為’男’。最後再次調用vars(person),可以看到person對象的gender屬性已被成功添加。
3. 格式化輸出對象屬性
通過vars函數獲取到一個對象的屬性和值之後,我們可以對這些屬性值進行格式化輸出。
class Person: def __init__(self, name, age): self.name = name self.age = age person = Person("張三", 18) for key, value in vars(person).items(): print("{0}: {1}".format(key, value)) # 輸出結果: # name: 張三 # age: 18
在上面的例子中,我們使用vars(person).items()的方式可以獲取到person對象中所有屬性的鍵值對。然後我們遍歷這些鍵值對,並通過字元串格式化的方式將鍵和值按照指定格式輸出。
四、小結
vars函數是Python內置函數中非常常用的一個函數,它可以幫助我們快速獲取到一個對象的屬性和值,並支持動態更新和添加對象屬性。在Python開發中,vars函數為我們處理對象的屬性和值提供了非常便利的方式。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/249198.html