Python学习笔记--面向对象

纵然是瞬间 提交于 2019-12-05 04:29:44

实现一个简单的功能,有一个Human基类,包含一个变量名字(_name)以及一个打印名字的方法(PrintName)。然后有一个Student子类,多一个变量分数(_grade),有一个获取分数的公共方法,每次获取分数后再调用一个重置分数的私有方法,并且重写了父类打印名字的方法。

class Human:
    _name = ""

    def __init__(self, _name):
        self._name = _name

    def PrintName(self):
        print("PrintName")


class Student(Human):
    _grade = 0

    def __init__(self, _grade, _name):
        self._grade = _grade
        self._name = _name

    def PrintName(self):
        super().PrintName()  #继承父类方法,如果不需要可以不写
        print("学生名:" + self._name)

    def PrintGrade(self):
        print("成绩:" + str(self._grade))
        self.__ResetGrade()

    def __ResetGrade(self):
        self._grade = 0
        print("重置后成绩:" + str(self._grade))


april = Student(90, "April")
april.PrintName()
april.PrintGrade()

输出结果为:

PrintName
学生名:April
成绩:90
重置后成绩:0

注意:一个 ‘’ 的变量相当于protected,两个 ‘’ 的变量相当于private,什么都不加的表示public。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!