属性的增删改查
'''创建一个学生类,假设这些学生都是来自同一个学校,同一个班级,学校和班级则可以当作类属性'''class Student: school="史莱克学院" grade="终极一班" def __init__(self,name,gender,clsID): self.name=name self.gender=gender self.clsID=clsID def study(self): print("good good study,day day up") def play_games(self): print("会玩才会学,不会玩,你叫我怎么学") print(Student.__dict__) #执行结果为: {'__module__': '__main__', 'school': '史莱克学院', 'grade': '终极一班', '__init__':, 'study': , 'play_games': , '__dict__': , '__weakref__': , '__doc__': None} #为Student类添加一个类属性【添加类属性】 Student.clscategory="魔法班" print(Student.__dict__) #执行结果为: {'__module__': '__main__', 'school': '史莱克学院', 'grade': '终极一班', '__init__': , 'study': 'play_games': , '__dict__': , '__weakref__': , '__doc__': None,'clscategory': '魔法班'} #_________________添加类属性的格式为 类名.newattr=attrvalue #删除clscategory属性 del Student.clscategory print(Student.__dict__) #执行结果为: {'__module__': '__main__', 'school': '史莱克学院', 'grade': '终极一班', '__init__': , 'study': , 'play_games': , '__dict__': , '__weakref__': , '__doc__': None} #_________________________删除类属性的格式为 del 类名.attr #修改grade属性的属性值 Student.grade="终极三班" print(Student.__dict__)
#执行结果为: {'__module__': '__main__', 'school': '史莱克学院', 'grade': '终极三班', '__init__':, 'study': , 'play_games': , '__dict__': , '__weakref__': , '__doc__': None}
s=Student("唐三","男",6100116003) print(s1.__dict__) 执行结果为: {'name': '唐三', 'gender': '男', 'clsID': 6100116003} #添加实例属性age s.age=18 print(s.__dict__) #执行结果为 {'name': '唐三', 'gender': '男', 'clsID': 6100116003, 'age': 18} #添加实例属性的格式 实例名.newattr=attrvalue #删除属性age del s.age print(s.__dict__) 执行结果为: {'name': '唐三', 'gender': '男', 'clsID': 6100116003} ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
s.school="超神学院" print(s.__dict__) 执行结果为; {'name': '唐三', 'gender': '男', 'clsID': 6100116003, 'age': 18, 'school': '超神学院'}
实例并不能修改类属性的值,虽然表面上看上去确实修改了类属性的值,其实只是为实例添加了一个属性,属性名与类属性名相同而已。