day_26面向对象

Posted augustyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day_26面向对象相关的知识,希望对你有一定的参考价值。

多态&封装

 

多态

‘‘‘
多态
执行时候的一种状态
‘‘‘


‘‘‘
类继承有2层意义: 1.改变  2.扩张
多态就是类的这两层意义的一个具体的实现方式
即,调用不同的类实例化得对象下的相同的方法,实现的过程不一样、
python  中的标准类型就是多态概念的一个很好的示范

‘‘‘

 

class H2O:
    def  __init__(self,name,temperature):
        self.name = name
        self.temperature = temperature

    def turn_ice(self):
        if self.temperature <0:
            print(‘[%s] 温度太低结冰了‘%self.name)
        elif self.temperature > 0 and self.temperature < 100:
            print(‘[%s]液化成冰‘%self.name)
        elif self.temperature > 100:
            print(‘[%s] 温度太高变成水蒸气‘%self.name)


class Water(H2O):
    pass

class Ice(H2O):
    pass

class steam(H2O):
    pass

w1 = Water(‘水‘,25)
i1 = Ice(‘冰‘,-20)
s1 = steam(‘蒸汽‘,333)


# w1.turn_ice()
# i1.turn_ice()
# s1.turn_ice()


def func(obj):
    obj.turn_ice()


func(w1)    #[水]液化成冰
func(i1)    #[冰] 温度太低结冰了
func(s1)    #蒸汽] 温度太高变成水蒸气

  

封装 

 

class People:

    _start = ‘1234‘
    __start1 = ‘5678‘

    def __init__(self,id,name,age,salary):
        self.id = id
        self.name = name
        self.age = age
        self.salary = salary


    def get_id(self):
        print(‘%s‘%self.id)


p = People(200000,‘yy‘,1,2000000)
print(p._start) #1234
print(People._start) #1234
print(p.__dict__)
print(People.__dict__)  #里面包含   ‘_People__start1‘: ‘5678‘
print(People._People__start1) #5678
print(p._People__start1)    #5678

  

 

以上是关于day_26面向对象的主要内容,如果未能解决你的问题,请参考以下文章

python学习_day26_面向对象之封装

目录大纲

python 学习 [day7]面向对象

day07_雷神_面向对象进阶

重修课程day26(面向对象6之反射,内置函数和常用模块)

Python之面向对象进阶------反射(Day26)