午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

python - 程序運行會出現錯誤

瀏覽:182日期: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 編程
相關文章:
主站蜘蛛池模板: 自拍亚洲色图 | 久久久久久一区二区三区 | 国产主播av | 在线免费日韩 | 国产成人二区 | 黄色一级片网站 | 男人天堂网在线视频 | 成人免费看黄 | 日本一区二区三区免费视频 | 国产精品一区久久久 | 麻豆性视频 | 国产精品xxxxx| 亚洲私人影院 | 亚洲国产成人自拍 | 亚洲人在线视频 | 天天干干天天 | 日韩欧美在线一区二区三区 | 激情欧美一区二区三区中文字幕 | 色婷在线 | 欧美三级欧美一级 | 亚洲第九十九页 | 久操精品在线 | 日本美女黄色一级片 | 久久久动漫 | 一级肉体全黄裸片 | 秋霞欧美网 | 亚洲性视频 | 小嫩嫩12欧美 | 色婷婷亚洲综合 | 久久久一级片 | 日韩精品视频观看 | 69xxx少妇按摩视频 | 国产一级黄色 | 亚洲激情自拍 | 欧美激情bbw| 一夜七次郎在线视频 | 国产黄色av | 岛国成人在线 | 琪琪久久| 亚洲精品国产精品国自产网站 | 亚洲精品久久久久久久久久久久久 |