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使用Flask框架获取用户IP地址的方法
Mar 21 Python
pyenv命令管理多个Python版本
Mar 26 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
Python依赖包整体迁移方法详解
Aug 15 Python
python retrying模块的使用方法详解
Sep 25 Python
简单了解python filter、map、reduce的区别
Jan 14 Python
Python MOCK SERVER moco模拟接口测试过程解析
Apr 13 Python
Python3-异步进程回调函数(callback())介绍
May 02 Python
使用Python防止SQL注入攻击的实现示例
May 21 Python
音频处理 windows10下python三方库librosa安装教程
Jun 20 Python
Window10上Tensorflow的安装(CPU和GPU版本)
Dec 15 Python
python opencv旋转图片的使用方法
Jun 04 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 输出简单动态WAP页面
2009/06/09 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
jQuery使用之处理页面元素用法实例
2015/01/19 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
vue-froala-wysiwyg 富文本编辑器功能
2019/09/19 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
SheIn俄罗斯:时尚女装网上商店
2017/02/28 全球购物
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
保护环境的建议书
2014/03/12 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
公益广告标语
2014/06/19 职场文书
信仰心得体会
2014/09/05 职场文书
2014最新实习证明模板
2014/10/02 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
公司车辆管理制度
2015/08/04 职场文书