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

自己编辑器运行问题

http://img1.sycdn.imooc.com//584e299600019faf04990595.jpg

代码如图  看不出有什么错误 在网页能提交 复制到自己的编辑器不能运行

我的编辑器是python2.7  在PyCharm 和 python自带的IDLE运行都是这种情况

正在回答

5 回答

你好,你的错误就是定义grade函数的时候,多写了一个score参数

http://img1.sycdn.imooc.com//5875f5860001f3c805000614.jpg

正确代码如下:

http://img1.sycdn.imooc.com//5875f5b50001b47011930444.jpg

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 < 60:
            return 'C'
        if self.score < 80:
            return 'B'
        return 'A'

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


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

慕粉2014408783 提问者

非常感谢!这么晚才采纳 谢谢
2017-02-10 回复 有任何疑惑可以回复我~


    @property

    def grade(self):

        if self.score < 60:

            return 'C'

        if self.score < 80:

            return 'B'

        return 'A'


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

参数不需要grade,只需要self参数就可以了

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

NealLiu

不需要score参数,打错了
2016-12-12 回复 有任何疑惑可以回复我~
#2

慕粉2014408783 提问者

抱歉抱歉 运行的时候去掉了那个score了 截图的时候用了另一个 去掉之后还是不能运行 在你的编辑器上能运行么?你用的什么编辑器?
2016-12-12 回复 有任何疑惑可以回复我~

改过之后的运行情况:

http://img1.sycdn.imooc.com//584ea95600019f0705570683.jpg

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

你仔细看看grade上面的标注不应该是@grade.getter,因为没有用@property标注过grade,所以不能用这个标注

grade上面的标注应该是@property,让它只存在get方法

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

慕粉2014408783 提问者

改了一下 还是不对
2016-12-12 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

自己编辑器运行问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信