在Python3中,Views(視圖)的作用,類似于數據庫中視圖的一個作用,能夠反映所對應對象的變化。就像數據庫表變化后,視圖查詢的結果是變化后的值一樣,python中通過Views查詢的值也是這樣的。
Python3中,dict.keys(),dict.items(),dict.values()返回的是Views,而不是list。可以通過list()函數將Views()轉換為list。
下面是一個說明Views作用的例子:
~~~
>>> dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500}
>>> keys = dishes.keys()
>>> values = dishes.values()
>>> # iteration
>>> n = 0
>>> for val in values:
... n += val
>>> print(n)
504
>>> # keys and values are iterated over in the same order
>>> list(keys)
['eggs', 'bacon', 'sausage', 'spam']
>>> list(values)
[2, 1, 1, 500]
>>> # view objects are dynamic and reflect dict changes
>>> del dishes['eggs']
>>> del dishes['sausage']
>>> list(keys)
['spam', 'bacon']
>>> # set operations
>>> keys & {'eggs', 'bacon', 'salad'}
{'bacon'}
~~~