Python面向对象程序设计之私有属性及私有方法示例


Posted in Python onApril 08, 2019

本文实例讲述了Python面向对象程序设计之私有属性及私有方法。分享给大家供大家参考,具体如下:

如果有一个对象,当需要对其进行修改属性时,有2种方法:

(1)对象名.属性名=数据---->直接修改

(2)对象名.方法名()----->间接修改

为了更好的保障属性安全,不能随意修改,一般处理方式为:

(1)将属性定义为私有属性

(2)添加一个可以调用的方法,供调用,也就是间接调用属性

首先我讲解下私有属性的例子:

1.下面这个是一个错误的例子:

class People(object):
  def __init__(self,name):
    self.__name=name
  def getName(self):
    return self.__name
  def setName(self,newName):
    if len(newName) >= 5:
      self.__name = newName
    else:
      print("error:名字长度需要大于或者等于5")
xiaoming = People("monkey")
print(xiaoming.__name)

这是错误的,因为直接输出了私有的属性,是不可以的,解决方式为:或者删掉object也行

class People(object):
  def __init__(self,name):
    self.__name=name
  def getName(self):
    return self.__name
  def setName(self,newName):
    if len(newName) >= 5:
      self.__name = newName
    else:
      print("error:名字长度需要大于或者等于5")
xiaoming = People("monkey")
print(xiaoming.getName()) #这样就是通过调用方法来间接调用属性

下面讲解一个私有方法的例子:

class Dog:
  #私有方法,在方法名前面加上两个下划线
  def __test1(self):
    print("1")
  def test2(self):
    print("2")
dog=Dog()
dog.__test1() #报错
dog.test2()  #正确

私有方法是不能直接调用的

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
初步理解Python进程的信号通讯
Apr 09 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
python绘制圆柱体的方法
Jul 02 Python
用Python实现读写锁的示例代码
Nov 05 Python
python实现一组典型数据格式转换
Dec 15 Python
详解python中自定义超时异常的几种方法
Jul 29 Python
python设置环境变量的作用整理
Feb 17 Python
浅谈python 中的 type(), dtype(), astype()的区别
Apr 09 Python
keras在构建LSTM模型时对变长序列的处理操作
Jun 29 Python
python 对xml解析的示例
Feb 27 Python
python中Pexpect的工作流程实例讲解
Mar 02 Python
Python基本数据类型之字符串str
Jul 21 Python
分析经典Python开发工程师面试题
Apr 08 #Python
django celery redis使用具体实践
Apr 08 #Python
python制作抖音代码舞
Apr 07 #Python
python实现抖音点赞功能
Apr 07 #Python
将pip源更换到国内镜像的详细步骤
Apr 07 #Python
python实现弹窗祝福效果
Apr 07 #Python
python实现祝福弹窗效果
Apr 07 #Python
You might like
PHP输出数组中重名的元素的几种处理方法
2012/09/05 PHP
WampServer搭建php环境时遇到的问题汇总
2015/07/23 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
功能强大的php分页函数
2016/07/20 PHP
php实现URL加密解密的方法
2016/11/17 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
php读取本地json文件的实例
2018/03/07 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
JS 图片缩放效果代码
2010/06/09 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
[59:42]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[01:11]steam端dota2实名认证操作流程视频
2021/03/11 DOTA
使用python分析git log日志示例
2014/02/27 Python
Python编程中的反模式实例分析
2014/12/08 Python
Python中的ceil()方法使用教程
2015/05/14 Python
Python生成器generator用法示例
2018/08/10 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
人民教师求职自荐信
2014/03/12 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
2015年清剿火患专项行动工作总结
2015/07/27 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python