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

如果不将score的属性设置成隐私的,为啥就会报错

class Student(object):

    def __init__(self, name, score):

        self.name = name

        self.score = 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 < 60:

            return 'C'

        if self.score < 80:

            return 'B'

        return 'A'

s = Student('Bob', 59)

print s.grade

s.score = 60

print s.grade

s.score = 99

print s.grade


正在回答

4 回答

我也跟你一样的情况,不太明白为什么会这样

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

http://img1.sycdn.imooc.com//599558130001665210550494.jpg  你快看~~

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

不要下划线不报错??

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

Brokeninthesublima

是的 你可以试试
2017-08-17 回复 有任何疑惑可以回复我~
#2

慕慕8143579 提问者 回复 Brokeninthesublima

我版本2.7 自己写的一个乱七八糟的类 但是不设置成私有属性会报错 不死心拿了答案也试了试,会报错。。。。我再试试
2017-08-17 回复 有任何疑惑可以回复我~
#3

Brokeninthesublima 回复 慕慕8143579 提问者

我是直接在网页上试的 试了我才敢给你答复
2017-08-17 回复 有任何疑惑可以回复我~
#4

慕慕8143579 提问者 回复 Brokeninthesublima

嘤嘤嘤 难道我的电脑今天心情不好。。。?
2017-08-17 回复 有任何疑惑可以回复我~
查看1条回复

_会报错(前面讲了私有属性一个下划线有可能会报错 )

 _ _不会报错

 不要下划线 不会报错

1 回复 有任何疑惑可以回复我~
#1

慕慕8143579 提问者

不要下划线 不会报错?
2017-08-17 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

如果不将score的属性设置成隐私的,为啥就会报错

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

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

帮助反馈 APP下载

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

公众号

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