您好,登錄后才能下訂單哦!
0.偶然間看到一個奇怪的現象
>>> x = 1 >>> a = var() >>> a['x'] 1
這是啥操作??用help(vars)之后,我才知道......
>>> help(vars) Help on built-in function vars in module builtins: vars(...) vars([object]) -> dictionary Without arguments, equivalent to locals(). With an argument, equivalent to object.__dict__.
如果,沒傳入參數就將相當于locals(),嗨,我還以為什么語法糖呢......
不知道locals()的老鐵們,可以先自己試一試,之后會寫
1.vars()走起
vars() 函數返回參數對象object的屬性和屬性值的字典對象
實際上調用了對象內部定義的__dict__屬性
可以試試:
>>> vars(1) TypeError: vars() argument must have __dict__ attribute
由于1這個對象沒有__dict__ 屬性,所以報錯
當然,如果參數為空則相當于調用locals()函數
我們做個試驗:
class xx: def __init__(self): self.__dict__ = {'':'我是變量__dict__'}
接下來調用此類:
>>> a = xx() >>> vars(a) {'': '我是變量__dict__'}
沒錯吧,返回的是該對象的__dict__屬性
簡單說一下__dict__:
類的靜態函數、類函數、普通函數、全局變量以及一些內置的屬性都是放在類的__dict__里
一些內置的數據類型是沒有__dict__屬性的(可以嘗試下 vars('我沒有__dict__屬性')這個語句)
2.總結
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。