为了账号安全,请及时绑定邮箱和手机立即绑定

关于self.__score


class Student(object):

    def __init__(self, name, score):
        self.name = name
        self.__score = 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

    @property
    def grade(self):
        if self.__score >= 80:
            return 'A'
        elif self.__score >= 60:
            return 'B'
        else:
            return 'C'

s = Student('Bob', 59)
print s.grade

s.score = 60
print s.grade

s.score = 99
print s.grade


1、在定义grade(self)的时候,我用的self.__score,最后运行结果也对了,是不是这样写是没错的?(因为第15行的赋值是吧?)
2、在定义grade(self)的时候,答案中用的self.score,这个self.score是从哪来的,从前面的第八行?

正在回答

3 回答

第一个,我也跟你写的一样,

第二个, self.score 是不是等同于  getScore() 方法了?

0 回复 有任何疑惑可以回复我~

self.__score是score的值传进来的,所以这里self.__score其实是等于self.score

0 回复 有任何疑惑可以回复我~

self.__score和self.score这两种写法都可运行,也都对,我猜应该是self.__score=score第5行的作用


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255533    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

关于self.__score

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号