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批量创建迅雷任务及创建多个文件
Feb 13 Python
python 查找字符串是否存在实例详解
Jan 20 Python
python安装Scrapy图文教程
Aug 14 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
Dec 20 Python
Python操作word常见方法示例【win32com与docx模块】
Jul 17 Python
Python3.7 新特性之dataclass装饰器
May 27 Python
python实现五子棋小程序
Jun 18 Python
Django用户认证系统 组与权限解析
Aug 02 Python
python之pymysql模块简单应用示例代码
Dec 16 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 Python
详解Selenium 元素定位和WebDriver常用方法
Dec 04 Python
Python基础之赋值,浅拷贝,深拷贝的区别
Apr 30 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警告Cannot use a scalar value as an array的解决方法
2012/01/11 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
php实例化一个类的具体方法
2019/09/19 PHP
JavaScript 事件冒泡简介及应用
2010/01/11 Javascript
JavaScript 代码压缩工具小结
2012/02/27 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
js操作数据库实现注册和登陆的简单实例
2016/05/26 Javascript
新入门node.js必须要知道的概念(必看篇)
2016/08/10 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
2016/12/14 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
vue组件的写法汇总
2018/04/12 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
Layui 解决表格异步调用后台分页的问题
2019/10/26 Javascript
详解datagrid使用方法(重要)
2020/11/06 Javascript
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
Python装饰器原理与用法分析
2018/04/30 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
Python操作Jira库常用方法解析
2020/04/10 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
外贸业务员求职信范文
2013/12/12 职场文书
大学生军训感想
2014/02/16 职场文书
高中生评语大全
2014/04/25 职场文书
志愿者个人总结
2015/03/03 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
校长一岗双责责任书
2015/05/09 职场文书
天气温馨提示语
2015/07/14 职场文书
教师教育教学随笔
2015/08/15 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
争做文明公民倡议书
2019/06/24 职场文书
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL