Discuss / Python / 为什么没定义self.score而get_grade()函数里的self.score可以正确执行,而打印self.score

为什么没定义self.score而get_grade()函数里的self.score可以正确执行,而打印self.score

Topic source

class Student(object):

    def __init__(self,name,score):

        self.__name=name

        self.__score=score

    def get_name(self):

        return self.__name

    def get_grade(self):

        if self.score>80:

            return 'A'

        elif 60<self.score<80:

            return 'B'

        else:

            return 'C'

stu=Student('xiaoming',66)

print(stu.get_name(),':',stu.get_grade())

输出:xiaoming : A

求教:为什么stu.name不能输出,而get_grade()函数可以正常运行。可是get_grade()函数里的是self.score而不是self.__score,init里没有定义self.score啊,请问为什么可以测试通过?

请问为什么没定义self.score而get_grade()函数里的self.score可以正确执行,而打印self.score会报错???

python 3.8 vscode,把你的代码运行了一遍就报self.score错误,改为self.__score就完全通过了,没遇到你说的情况哎


  • 1

Reply