Python 对象多态与封装
多态
class H2O: def __init__(self,name,temp): self.name=name self.temp=temp def run(self): if self.temp<=100: print('【%s】的温度是%s'%(self.name,self.temp)) """ 多态: 不同的对象继承相同的父类,运行相同的方法,但是执行的结果不一样 """ class Water(H2O): pass class Ice(H2O): pass obj=Water('水',100) obj.run() obj=Ice('冰',-100) obj.run()
封装
封装就是将对象属性隐藏起来,属性私有化,行为公开化
1. 只要是类里面的属性前面加一个单下划线,就是告诉别人,这是一个私有属性,但是仍然可以调用到,这只是一个约定。
2. 只要是类里面的属性前面加一个双下划线,就是告诉别人,这是一个私有属性,外部不能调用到。
3. 私有属性在内部可以访问
class Person: def __init__(self): self.__age=23 self._sex='girl' p=Person()
属性私有化,行为公开化
class Person: def __init__(self): self.__age=23 self.__sex='girl' def get_age(self): return self.__age def get_sex(self): return self.__sex p=Person() p.get_age() p.get_sex()