封装

第一层面的封装:类就是一个麻袋,这本身就是一种封装
第二层面的封装:勒种定义私有的,只在类的内部使用,外部无法访问(要充分考虑好内和外,为用户设计好访问接口)
单下划线:
双下划线开头的属性在继承给子类时,子类是无法覆盖的(原理是基于python自动做了双下划线开头的名字的重名命工作)

class Room:
    _star='adasda'
    __s ='11wwwwww'
    def __init__(self,name,ower,width,length,high):
        print('--------',self._star)
        print('--------', self.__s)
        self.name=name
        self.owner=ower
        self.__width=width
        self.__length=length
        self.__high=high
    #接口,如果你的类里面有很多私有的,通过这个接口,可以控制哪些可以给使用者用哪些不可以
    def get_s(self):
        print(self.__s)
    #求体积,这是为使用者定义的接口
    def tell_area(self):
        return self.__width*self.__high*self.__length

r1=Room('体积','aa',1,2,3)
#虽然说_ 和__两种约定是使它私有,但是python自己原因可以再外部通过下面这两行代码访问到。
#但是这样不好,可以通过在类中自己定义接口十七间接找到他所能看到的
print(r1._star)
print(r1._Room__s)
#定义接口后可以通过它内部的方法间接的找到
r1.get_s()
t = r1.tell_area()
print(t)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值