国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

瀏覽:111日期: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 | 亚洲男人的天堂久久香蕉网 | 91中文字幕网 | 欧美精品久久一区二区三区 | 久久精品免费一区二区视 | 国内精品久久久久影院网站 | 亚洲视频国产精品 | 91精品国产美女福到在线不卡 | 成年女人午夜免费视频 | 99re6这里有精品热视频在线 | 一本大道香蕉久在线不卡视频 | 免费观看国产精品 | 朝鲜一级毛片 | 免费看特级淫片日本 | 成人精品网 | 曰韩三级 | 99在线观看精品 | 精品国产美女福利到在线不卡 | a级毛片免费观看在线播放 a级毛片免费看 | 午夜怡红院| 欧美韩国日本一区 | 国产网站黄色 | 国内亚州视频在线观看 | 亚洲乱视频| 精品久久久久中文字幕日本 | 国产在线精品二区韩国演艺界 | 国产亚洲精品一区999 | 国产在线精品一区二区三区不卡 | 国产aⅴ一区二区三区 | 理论片我不卡在线观看 | www一级片 | www成人在线观看 | 一级毛片一片毛 | 国产深夜福利视频观看 | 亚洲美女视频免费 | 欧美一级高清片免费一级 | 国产精品外围在线观看 | 成人黄网18免费观看的网站 | 国产成人精品亚洲日本在线观看 | 天天看a| 国产免费一区二区三区 |