zoukankan      html  css  js  c++  java
  • 回顾类与对象—属性私有化

    类:类型,数据类型的简称;

    对象:实体。类型所表现出的一个实例。

    对象具有封装、继承、多态三大特征。

    类与对象的创建与使用:

    类:类型名称 属性 方法。

            通过 class 关键字来自定义类型

            通过 __init__() 函数,初始化类属性数据。

    创建对象:和执行函数一样,通过类名创建;

    使用对象属性:对象的引用变量.属性名称;

    使用对象方法:对象的引用变量.方法

    创建对象的过程:

           a) 创建对象 调用__new__()函数,申请内存地址,创建对象;

           b) 给创建好的对象,初始化对象的数据,自动调用__init__() 函数,给对象的属性赋值;

    关于创建好的对象赋值给变量,变量的类型存放数据问题

           a) 变量 = 类名称()   创建对象,引用地址赋值给变量

           b) 变量(内存地址)  堆内存中的对象

    对对象的属性限制:

    1  __slots___ = [ “ ” ,“ ” , “ ”]             #先声明一些可能用到的属性

     属性私有化

     1 class  Person ( object ):
     2 
     3     def __init__( self ):
     4 
     5         self.name = “old_wang”              #普通属性,表示公共属性
     6 
     7         self._weight = “50kg”                 #约定,一个下划线开头的,表示私有属性
     8 
     9          #规则:两个下划线开头的属性,不能被外界直接访问      
    10          self.__belief = “你的剑就是我的剑” 

    提供 get / set 函数来间接访问对象的私有属性:

     1 # 给私有属性设置值的方法:
     2 
     3 def set_belief(self,believe):
     4 
     5     self.__belief = believe
     6 
     7 # 获取私有属性数据的方法:
     8 
     9 def get__belief ( self ):
    10 
    11     return  self.__belief

    创建一个对象并访问其属性:

    1 p = Person()
    2 
    3 print(p.name)
    4 
    5 print(p._weight)
    6 
    7 print(p.get_belief())

    高级封装——隐藏 get / set 方法:

    使用@property 和 @setter 来将方法,扩展成属性的使用方式

    @property @method.setter:

    将方法隐藏起来,提高代码的安全性

    @property       #给获取值的方法,添加@property
    
    def belief(self):
    
        return self.__belief
    
    @name.setter
    
    def belief(self,b):
    
        self.__belief = b
    
    
    
    a = Person()
    
    a.belief = “我的剑还是我的剑”
  • 相关阅读:
    Android开发 ViewConfiguration View的配置信息类
    Android 开发 倒计时功能 转载
    Android 开发 关于7.0 FileUriExposedException异常 详解
    Android 开发 实现文本搜索功能
    Android 开发 Activity里获取View的宽度和高度 转载
    Android 开发 存储目录的详解
    Android 开发 Fresco框架点击小图显示全屏大图实现 ZoomableDraweeView
    Android 开发 将window变暗
    Android 开发 DisplayMetrics获取Android设备的屏幕高宽与其他信息
    Android 开发 DP、PX、SP转换详解
  • 原文地址:https://www.cnblogs.com/hexige/p/7484453.html
Copyright © 2011-2022 走看看