程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(3)

封装

发布于2020-03-20 13:16     阅读(5793)     评论(0)     点赞(20)     收藏(3)


第一层面的封装:类就是一个麻袋,这本身就是一种封装
第二层面的封装:勒种定义私有的,只在类的内部使用,外部无法访问(要充分考虑好内和外,为用户设计好访问接口)
单下划线:
双下划线开头的属性在继承给子类时,子类是无法覆盖的(原理是基于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)

原文链接:https://blog.csdn.net/weixin_44017891/article/details/104975785



所属网站分类: 技术文章 > 博客

作者:sjhjf0293

链接:https://www.pythonheidong.com/blog/article/271157/238869e1be5f9ca407e2/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

20 0
收藏该文
已收藏

评论内容:(最多支持255个字符)