亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

python - 程序運(yùn)行會(huì)出現(xiàn)錯(cuò)誤

瀏覽:79日期:2022-06-27 17:51:54

問題描述

class Person(object): def __init__(self,name):self.name = nameclass Teacher(Person): def __init__(self,score):self.__score = scoreclass Student(Teacher,Person): def __init__(self,name,score):Person.__init__(self,name)super(Student,self).__init__(score) @property def score(self):return self.__score @score.setter def score(self,score):if score<0 or score >100: raise ValueError(’invalid score’)self.__score = score def __str__(self):return ’Student:%s,%d’ %(self.name,self.score)s1 = Student(’Jack’,89)s1.score = 95print s1

在運(yùn)行這個(gè)程序時(shí),只有當(dāng)score是私有變量的時(shí)候才能正常運(yùn)行,是property的某些特性嗎,還是什么?如果只設(shè)置為self.score = score,就會(huì)出現(xiàn)‘maximum recursion depth exceeded while calling a Python object’的錯(cuò)誤,求大神解答

問題解答

回答1:

會(huì)產(chǎn)生這個(gè)困惑的原因是對(duì)python的getter裝飾器和setter裝飾器不夠熟悉

當(dāng)你聲明了對(duì)score屬性的setter裝飾器之后, 實(shí)際上對(duì)這個(gè)score進(jìn)行賦值就是調(diào)用這個(gè)setter裝飾器綁定的方法

所以你的setter要訪問的成員變量不能和setter方法同名, 不然就相當(dāng)于一個(gè)無盡的迭代:

self.score(self.score(self.score(self.score(self.score........ 無盡的迭代,

當(dāng)然會(huì)報(bào)超過最大迭代深度的錯(cuò)誤了

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产在亚洲线视频观看 | 国产馆在线观看视频 | 亚洲精品成人一区二区aⅴ 亚洲精品大片 | 一级毛片女学护士 | 成人au免费视频影院 | 亚洲欧洲视频在线 | 黄色无毒网站 | 亚洲啪啪网 | 青青草97国产精品免费观看 | 国产成人精品一区二区仙踪林 | 一级毛片免费在线观看网站 | 水蜜桃爱爱yy视频在线观看 | 日本在线播放一区 | 国产高清美女一级a毛片久久w | 香蕉依依精品视频在线播放 | 一级做人爰a全过程免费视频 | 台湾永久内衣秀 | 91porn成人精品 | 亚洲九九香蕉 | 成人三级在线播放 | 国产www| 九九啪| 不卡黄色| 国产美女免费视频 | 日韩黄色在线播放 | 国产一区二区三区成人久久片 | 国产小视频精品 | 福利视频在线观看视频 | 成人黄色一级视频 | 国产精品久久久久久影视 | 成人一a毛片免费视频 | 真实国产乱子伦对白视频37p | 一本色道久久综合亚洲精品加 | 亚洲合集综合久久性色 | 日韩欧美一二三区 | 玛雅视频网站在线观看免费 | 麻豆视频免费观看入口 | 午夜国产高清精品一区免费 | 日本黄色免费大片 | 99久久精品国产片 | 国产精品自拍一区 |