zoukankan      html  css  js  c++  java
  • 面向对象中之封装简述

    一,封装:

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

    目的:

    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)
  • 相关阅读:
    mysql高并发配置
    php xml转array的方法
    双系统,一系统损坏后的解决方案之硬盘启动
    最长公共前缀
    罗马数字转整数
    回文数
    整数反转
    一、数组---两数之和
    从尾到头打印链表
    替换空格
  • 原文地址:https://www.cnblogs.com/wujc3/p/11252547.html
Copyright © 2011-2022 走看看