面向对象中之封装简述

一,封装:

将复杂的,隐私的细节藏到内部,对外提供简单的使用接口。

目的:

1.为了保证关键数据的安全性

2.对外部影藏实现细节,隔离复杂度

使用场景:

当一些数据不希望被外界直接修改的时,

当一些方法不想被外界使用时

语法:

class person:
        def __init__(self,id_number,name,age)
                    self.__id_number = id_number  #封装
                    self.name = name 
                    self.age = age

特点:

1,外界不能直接访问或使用

2,内部时依然可以使用的

封装实现原理:

是在加载类的时候,把双杠(_ _)属性或方法名   替换成了   _ 类名 _ _

 

二,权限

在python中只有两种权限

1.公开的(默认的就是公开的)

2.私有的,只能当前类自己使用

当封装后,可以同过定义方法类对私有属性的修改和访问

三,property装饰器

通过该装饰器装饰后,只要使用者来修改或是访问属性,不需要考虑哪些是普通属性,哪些是私有属性,需要使用哪些不同的方式调用。

它还可以来实现计算属性

如下:

class A:
    def __init__(self,name,key):
        self.__name = name
        self.__key = key

    @property
    def key(self):
        return self.__key

    @key.setter
    def key(self,new_key):
        if new_key <= 100:
            self.__key = new_key
        else:
            print("key 必须小于等于100")

    
    @key.deleter
    def key(self):
        print("不允许删除该属性")
        del self.__key
        
a = A("jack",123)
print(a.key)
a.key = 321
print(a.key)

 

posted on 2019-07-27 00:03  IT界的蜉蝣  阅读(216)  评论(0编辑  收藏  举报

导航