亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

簡單瞅瞅Python vars()內置函數的實現

發布時間:2020-10-18 22:01:34 來源:腳本之家 閱讀:124 作者:王尼瑪 欄目:開發技術

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.總結

  • vars()在沒有傳入參數的時候,相當于調用locals()
  • 若傳入自定義類的對象,則返回對象的__dict__屬性,大多數自定義類會隱式創建__dict__屬性
  • 若傳入一些內置的數據類型,則由于其沒有__dict__屬性,會報錯:TypeError: vars() argument must have __dict__ attribute

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大关县| 奉化市| 项城市| 仁布县| 揭西县| 高青县| 金秀| 资兴市| 股票| 青冈县| 惠州市| 珲春市| 定日县| 沧源| 朝阳县| 沂水县| 宜昌市| 封开县| 桃园县| 宁强县| 巴马| 扶绥县| 宁南县| 巫山县| 温泉县| 会泽县| 芒康县| 龙州县| 准格尔旗| 乌拉特前旗| 绥棱县| 托克逊县| 余庆县| 漯河市| 武安市| 措勤县| 永定县| 广汉市| 正镶白旗| 婺源县| 旬阳县|