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中的zipfile模块使用详解
Jun 25 Python
理解python正则表达式
Jan 15 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
May 07 Python
在双python下设置python3为默认的方法
Oct 31 Python
python判断字符串或者集合是否为空的实例
Jan 23 Python
python 中的列表生成式、生成器表达式、模块导入
Jun 19 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
Jun 02 Python
python实现粒子群算法
Oct 15 Python
python 基于selectors库实现文件上传与下载
Dec 31 Python
python百行代码实现汉服圈图片爬取
Nov 23 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系统流量分析的程序
2006/10/09 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
Javascript数组的排序 sort()方法和reverse()方法
2012/06/04 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
2019/02/02 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python解析模块(ConfigParser)使用方法
2013/12/10 Python
python实现简单的socket server实例
2015/04/29 Python
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
Python使用爬虫猜密码
2016/02/19 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
python实现神经网络感知器算法
2017/12/20 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
Python爬虫开发与项目实战
2020/12/16 Python
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
详解CSS3中强大的filter(滤镜)属性
2017/06/29 HTML / CSS
菲律宾领先的在线时尚商店:Zalora菲律宾
2018/02/08 全球购物
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
美容师的职业规划书
2013/12/27 职场文书
副董事长岗位职责
2014/04/02 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
python flask框架快速入门
2021/05/14 Python
详解如何用Python实现感知器算法
2021/06/18 Python