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()

 

posted @ 2020-11-16 23:06  leungqingyun  阅读(72)  评论(0)    收藏  举报