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设置socket代理的方法
Jan 14 Python
浅谈Python中数据解析
May 05 Python
详解Python的Django框架中的中间件
Jul 24 Python
Python实现的矩阵类实例
Aug 22 Python
分析python切片原理和方法
Dec 19 Python
Python2.7 实现引入自己写的类方法
Apr 29 Python
pandas 透视表中文字段排序方法
Nov 16 Python
python生成器与迭代器详解
Jan 01 Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 Python
Python enumerate函数遍历数据对象组合过程解析
Dec 11 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
Dec 26 Python
Selenium alert 弹窗处理的示例代码
Aug 06 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
Banner程序
2006/10/09 PHP
PHP中的正规表达式(二)
2006/10/09 PHP
php 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
php查找指定目录下指定大小文件的方法
2014/11/28 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
AngularJS基础 ng-class-odd 指令示例
2016/08/01 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
2017/01/04 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
JavaScript实现通讯录功能
2020/12/27 Javascript
python中字符串变二维数组的实例讲解
2018/04/03 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
在Django中实现添加user到group并查看
2019/11/18 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
建筑经济管理专业求职信分享
2014/01/06 职场文书
工伤赔偿协议书范本
2014/04/15 职场文书
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
小学国庆节活动总结
2015/03/23 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书
python实现简单倒计时功能
2021/04/21 Python
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL