m0_62197247 2021-11-24 08:53 采纳率: 100%
浏览 643
已结题

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

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

  • 写回答

2条回答 默认 最新

  • CSDN专家-黄老师 2021-11-24 09:12
    关注
    
    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月2日
  • 已采纳回答 11月24日
  • 创建了问题 11月24日