自定义学生类Student,成员包含:实例属性sno、sname、age,类属性count,实例方法show(用于显示sno、sname、age信息),其中,实例属性age为私有成员,请完成如下问题:

(1) 创建Student对象两个,分别访问上述成员方法,同时用类名访问上述成员方法,输出结果。
(2) 为Student对象动态增加新成员性别sex和方法setGrade(获取学生年级,导入types模块,调用MethodType()方法)
(3) 在类外部访问sno私有实例属性


import types


class Student:
    def __init__(self, sno, name, age):
        self.sno = sno
        self.name = name
        self.__age = age

    def show(self):
        print(self.sno, self.name, self.__age)

def setGrade(self):
    print(self.sex, self.grade)

s = Student(1, 'Tom', 23)
s.show()
s.sex = 'boy'
s.grade = '小学'
s.setGrade = types.MethodType(setGrade, s)
s.setGrade()
# 在类外部访问私有实例属性
print(s.__dict__.get('_Student__age'))


img

img

img

不要着急提问,先搜索下看看结果