国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

淺談Python由__dict__和dir()引發(fā)的一些思考

2020-02-16 10:30:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

關(guān)于__dict__和dir()的區(qū)別和作用請(qǐng)參考這篇文章:

基于Python __dict__與dir()的區(qū)別詳解

說(shuō)下我當(dāng)時(shí)遇到的問(wèn)題:

class Demo:  def __init__(self, name, age):    self.name = name    self.age = age  def func(self):    print('Hello {0}'.format(self.name))>>> d1 = Demo('Pythoner', 24)>>> hasattr(d1, 'func')True>>> d1.__dict__{'age': 24, 'name': 'Pythoner'}>>dir(d1)[ 'age', 'func', 'name','__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']

首先,我們知道實(shí)例方法也可以算作是屬性,通過(guò)hasattr()函數(shù)可以驗(yàn)證.而 __dict__是用來(lái)存儲(chǔ)對(duì)象屬性的一個(gè)字典,但是它的返回值中并沒(méi)有'func'!

再看dir()函數(shù),它會(huì)自動(dòng)尋找一個(gè)對(duì)象的所有屬性(包括從父類(lèi)中繼承的屬性),它的返回值中有'func'.

所以我推測(cè),"實(shí)例方法"并不屬于實(shí)例的"私有"屬性,而是該類(lèi)的所有實(shí)例所共享的屬性!

實(shí)例得到私有屬性需要一個(gè)"私有化"的過(guò)程,就像__init__初始化函數(shù)!

驗(yàn)證:

class Demo2:  def __init__(self, name):    self.name = name  def func(self):    print('----get arg country----')    self.country = 'China'>>> d2 = Demo2('Pythoner')>>> d2.__dict__{'name': 'Pythoner'}>>> d2.func()----get arg country---->>> d2.__dict__{'country': 'China', 'name': 'Pythoner'}

"實(shí)例方法"之所以被稱(chēng)為實(shí)例方法,或者說(shuō)每個(gè)實(shí)例執(zhí)行實(shí)例方法會(huì)因?yàn)楦髯运接袑傩缘牟煌a(chǎn)生不同的結(jié)果,是因?yàn)榉椒ㄖ械膕elf參數(shù).

實(shí)例在執(zhí)行實(shí)例方法時(shí)會(huì)在其所屬的類(lèi)中尋找該方法,然后通過(guò)self參數(shù)將實(shí)例本身傳遞進(jìn)去,實(shí)例的私有屬性就一并進(jìn)行了傳遞.通過(guò)self參數(shù)就實(shí)現(xiàn)了實(shí)例和方法的綁定.

總結(jié)

以上就是本文關(guān)于淺談Python由__dict__和dir()引發(fā)的一些思考的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:淺談使用Python變量時(shí)要避免的3個(gè)錯(cuò)誤、深入理解Python中的*重復(fù)運(yùn)算符等,如有不足之處,歡迎留言指出。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 紫云| 万年县| 巴楚县| 新巴尔虎右旗| 博白县| 邵东县| 砚山县| 玉屏| 台东市| 宜良县| 普定县| 寿光市| 象山县| 新干县| 凌源市| 五河县| 三河市| 花垣县| 军事| 延吉市| 基隆市| 兴城市| 浮梁县| 桑日县| 汽车| 民乐县| 顺平县| 宜兴市| 扎鲁特旗| 虹口区| 德惠市| 弥渡县| 江陵县| 宁安市| 大荔县| 曲阳县| 大同市| 大同市| 榆社县| 冀州市| 遵义县|