多态,继承,封装

多态:

对象如何通过他们共同的属性和动作来操作和访问,而不用考虑他们的类,反应在执行时候。

python中一切皆对象,不同的对象调用相同的方法,获得结果。比如len可以计算列表长度,字符串长度。
len(str1)-----> str1.__len__()
len(list)----->list.__len__()
所以,都是调用对象的方法,是面向对象。那么,他们调用的都是相同的属性,没考虑他们是什么,

为什么这样呢?因为继承了同一个父类。

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


    def turn_into(self):
        if self.temperature < 0:
            print("这是冰 %s " %self.name)
        if self.temperature >= 0:
            print("这是水 %s " %self.name)
        if self.temperature > 100:
            print("这是水蒸气" %s, self.name)

class water(h2o):
    pass

class ice(h2o):
    pass

    pass

w1 = water("水1",30)
w1.turn_into()
封装
约定1:任何以单下划线开头的名字都应该是内部的,私有的,外部不能用。外部就是类外面的。
约定2:双下划线开头,被隐藏,外部不能直接调用,因为做了重命名的操作,变成了 ._class(类名)__func


第一层:类就是封装
第二层:类中定义私有的,只在类的内部使用,外部无法访问。
第三层:明确区分内外,外部不能访问,内部可以访问。可以通过内部调用,为外部提供了一个接口。

称为接口函数或者访问函数。

#曲线救国的方式:
class xx:
    def __xx:
        pass
    def get_id(self):  #用内部去调被封装的属性 self就是代表自己
        print(self.__xx)
y = class()
y.get_id()

总结,class中不想让外面调用或者访问的,就封装起来,但是内部可以提供一个接口,里面有用封装数据运算的函数;
被频繁使用的可以通过这个接口函数去访问。
这个数据要不要被封装,一定要看这个数据会不会被频繁的直接访问,不能滥用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值