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爬虫入门教程--优雅的HTTP库requests(二)
May 25 Python
python 全局变量的import机制介绍
Sep 07 Python
对pandas的行列名更改与数据选择详解
Nov 12 Python
Python3非对称加密算法RSA实例详解
Dec 06 Python
python numpy数组复制使用实例解析
Jan 10 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
Jul 27 Python
序列化Python对象的方法
Aug 01 Python
13个Pandas实用技巧,助你提高开发效率
Aug 19 Python
Python中的None与 NULL(即空字符)的区别详解
Sep 24 Python
tensorflow2.0教程之Keras快速入门
Feb 20 Python
python实现的人脸识别打卡系统
May 08 Python
一文搞懂Python Sklearn库使用
Aug 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获取youku视频真实flv文件地址的方法
2014/12/23 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
javascript克隆对象深度介绍
2012/11/20 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
js实现漂亮的星空背景
2019/11/01 Javascript
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
利用Python演示数型数据结构的教程
2015/04/03 Python
Python基于pillow判断图片完整性的方法
2016/09/18 Python
Python 列表理解及使用方法
2017/10/27 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
python 异或加密字符串的实例
2018/10/14 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
django ajax发送post请求的两种方法
2020/01/05 Python
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
HTML5图片预览实例分享
2014/06/04 HTML / CSS
社区学雷锋活动策划方案
2014/01/30 职场文书
同学聚会主持词
2014/03/18 职场文书
调研座谈会发言材料
2014/08/23 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
珍爱生命主题班会
2015/08/13 职场文书
队名及霸气口号大全
2015/12/25 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
详解Redis复制原理
2021/06/04 Redis