91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

簡單瞅瞅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

杨浦区| 保亭| 顺义区| 蕲春县| 福建省| 五原县| 墨竹工卡县| 名山县| 鸡泽县| 老河口市| 泰安市| 桦川县| 邢台县| 海安县| 黔江区| 武强县| 海丰县| 丰县| 通江县| 元阳县| 蒙城县| 石嘴山市| 阿坝县| 牟定县| 湘潭市| 安阳县| 天门市| 凤阳县| 庄河市| 辽中县| 镇巴县| 大同县| 淳安县| 荔浦县| 龙岩市| 阜宁县| 德钦县| 姜堰市| 利川市| 太和县| 格尔木市|