色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

python - 程序運行會出現錯誤

瀏覽:102日期: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

在運行這個程序時,只有當score是私有變量的時候才能正常運行,是property的某些特性嗎,還是什么?如果只設置為self.score = score,就會出現‘maximum recursion depth exceeded while calling a Python object’的錯誤,求大神解答

問題解答

回答1:

會產生這個困惑的原因是對python的getter裝飾器和setter裝飾器不夠熟悉

當你聲明了對score屬性的setter裝飾器之后, 實際上對這個score進行賦值就是調用這個setter裝飾器綁定的方法

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

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

當然會報超過最大迭代深度的錯誤了

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 久久久久久久久久久久久久久久久久 | 欧美曰韩一区二区三区 | 韩国精品一区视频在线播放 | 91精品国产色综合久久 | 手机看片1024国产基地 | 国产成人午夜精品影院游乐网 | tom影院亚洲国产日本一区 | 国内亚州视频在线观看 | 日韩精品一二三区 | 91精品国产91热久久p | 成年人免费在线视频网站 | 一级aaaaaa毛片免费同男同女 | 18在线观看国内精品视频 | 成人网18免费下 | 免费特黄一级欧美大片在线看 | 日本亚州在线播放精品 | 伊人久热这里只有精品视频99 | 国产精品久久大陆 | 在线免费观看国产视频 | 国产亚洲精品片a77777 | 久草在线免费新视频 | 黄色毛片免费看 | 午夜爽爽爽男女免费观看hd | 亚洲国产精品线在线观看 | 日韩免费一级片 | 日韩久久一区二区三区 | 精品欧美成人高清在线观看2021 | 亚洲一区欧美 | 求欧美精品网址 | 欧美午夜网 | a级毛片免费高清视频 | 成人毛片在线视频 | 国产精品一区在线观看 | 久久免费在线观看 | 99久久免费精品视频 | 久久精品中文字幕有码日本 | 国产一区二区三区在线观看视频 | 精品三级内地国产在线观看 | 加勒比综合在线 | 日韩字幕一中文在线综合 | 国产玖玖视频 |