#访问限制
bart=Student('Bart Simpson',59)#修改
bart.score=99#实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问classStudent(object):def_init_(self,name,score):
self._name=name
self.score=score
defget_name(self):return self._name
defget_score(self):return self._score
defset_score(self,score):if0<=score <=100:
self._score=score
else:raise ValueError('bad score')defprint_score(self):print('%s,%s'%(self._name,self._score))
bart = Student('Bart Simpson',59)print('bart.get_name()=',bart.get_name())
bart.set_score(60)print('bart.getscore()=',bart.get_score())#继承和多态classAnimal(object):defrun(self):print('Animal is running')classDog(Animal):defrun(self):print('Dog is running')defeat(self):print('Eating meat')#可以稍作改动classDog(Animal):defrun(self):print('Dog is running')
c=Dog()isinstance(c,Dog)#Trueprint('c is Animal?',isinstance(c,Animal))isinstance(c,Animal)#True#理解多态defrun_twice(animal):
animal.run()classTortoise(Animal):defrun(self):print('Tortoise is running slowly')classAnimal(object):defrun(self):print("Animal is running")classDog(Animal):passclassCat(Animal):defrun(self):print('Cat is running')passclassCar(object):defrun(self):print('Car is runnng')classStone(object):passdefrun_twice(animal):
animal.run()
run_twice(Stone())#AttributeError: 'Stone' object has no attribute 'run'