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 = “我的剑还是我的剑”
  • 相关阅读:
    happens-before规则和指令重排
    如何利用Google API为WordPress网页添加二维码
    Hadoop全分布式安装
    Hadoop完全分布式安装设置ssh免密登陆遇到的错误问题
    hadoop环境搭建过程中遇到的问题
    使用python去除图片周围的白色边框(黑色边框)
    Pandas(python)数据处理:只对某一列DataFrame数据进行归一化
    VM安装Ubuntu问题合集(无法联网、中文界面设置、中文输入法etc)
    C 语言控制台实现五子棋项目
    利用位运算求一个月的天数
  • 原文地址:https://www.cnblogs.com/hexige/p/7484453.html
Copyright © 2011-2022 走看看