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

私有属性代码结果

# -*- coding: UTF-8 -*-

class Person(object):


    def __init__(self, name, score):

        self.name = name

        self.__score = score


    def get_grade(self):

        if self.__score >= 85:

            print("A-优秀")

        elif self.__score >= 60:

            print("B-及格")

        else:

            print("C-不及格")

            


p1 = Person('Bob', 90)

p2 = Person('Alice', 65)

p3 = Person('Tim', 48)


print p1.get_grade()

print p2.get_grade()

print p3.get_grade()

为什么结果有none?

正在回答

2 回答

get_grade()方法的功能是打印成绩,由于没有return语句,它默认return一个none。
也就是说  p.get_grade()的值是none。
在执行print p1.get_grade()语句时,先进入p1中执行了一遍p1的get_grade方法,打印出成绩
然后返回了一个none,又被你打印出来了
如果修改的话,可以将最后三行修改为
p1.get_grade()
2 回复 有任何疑惑可以回复我~

因为你的getter方法也就是get_grade这个返回值为none,外部的print p1.get_grade()把这个返回值打印出来了

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

举报

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

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

进入课程

私有属性代码结果

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