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使用BeautifulSoup分页网页中超链接的方法
Apr 04 Python
flask中主动抛出异常及统一异常处理代码示例
Jan 18 Python
Python定义二叉树及4种遍历方法实例详解
Jul 05 Python
详解python Todo清单实战
Nov 01 Python
python读取xlsx的方法
Dec 25 Python
Pycharm+Scrapy安装并且初始化项目的方法
Jan 15 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
Apr 29 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
Jun 04 Python
Python:type、object、class与内置类型实例
Dec 25 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
如何对python的字典进行排序
Jun 19 Python
Python3基于print打印带颜色字符串
Jul 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
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
深入浅出php socket编程
2015/05/13 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
jquery键盘事件使用介绍
2011/11/01 Javascript
理解JavaScript的prototype属性
2012/02/11 Javascript
ie支持function.bind()方法实现代码
2012/12/27 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
python实现的简单RPG游戏流程实例
2015/06/28 Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
2016/06/16 Python
Python按行读取文件的简单实现方法
2016/06/22 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
python实现数据库跨服务器迁移
2018/04/12 Python
深入了解Django中间件及其方法
2019/07/26 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
python else语句在循环中的运用详解
2020/07/06 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
介绍一下Java中的Class类
2015/04/10 面试题
预备党员公开承诺书
2014/05/28 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
python 命令行传参方法总结
2021/05/25 Python
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL
python基础之//、/与%的区别详解
2022/06/10 Python