• 封装


    封装就指的是把属性装进一个容器中,有隐藏的意思,但这种隐藏对外不对内。

    封装数据属性的目的是为了将数据属性封装起来,类外部的使用就无法直接操作该数据属性了,需要类内部开一个接口给使用者 而且类的设计者乐园在接口上附加任意的逻辑

    来严格控制使用者对数据的操作

    而封装函数属性的目的是隔离复杂度

    如何封装呢?

    只要在属性前加上__开头 ,该属性就会被隐藏

    隐藏具备的特点:

    1.只是一种语法意义上的变形,即__开头的属性会在检测语法时发生变形成_类名__属性名

    2.这种隐藏是对外不对内的,因为类内部检测语法时所用的代码都会统一发生变形

    3.这种变形只会在检测语法时发生一次 在类定义之后新增的__开头的属性不会发生变形

    4.如果父类不想让子类覆盖自己的属性 可以在自己的属性前加上__开头

    class A:
        def __f1(self):
            print('A.f1')
    
        def test(self):
            self.__f1()
        
     
    class B(A):#子类
        def__f1(self):
            print('B.f1')
    
    obj=B()
    obj.test()
    #验证父类属性前加上__不会被子类覆盖
    
    
    class Foo:
        __x=111
        def __init__(self,m):
            self.__m=m
    
        def f1(self):
            print(self.__m)
            print(self.__x)#内部接口
    
    #obj = Foo(12)
    ==>print(obj.f1())
    封装接口
  • 相关阅读:
    我的第一个博客在博客园安家了,哈哈~欢迎大家光临
    JS未设置对象问题解决方案
    关于Oracle的优化
    USACO 1.2 Milking Cows
    C语言的文件操作 freopen
    USACO 1.2 Palindromic Squares
    USACO 1.1 Broken Necklace
    ACM征程再次起航!
    USACO 1.3 Barn Repair
    USACO 1.2 Transformations
  • 原文地址:https://www.cnblogs.com/xiamenghan/p/9846004.html
Copyright © 2020-2023  润新知