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 元类使用说明
Dec 18 Python
JSON Web Tokens的实现原理
Apr 02 Python
使用Python的package机制如何简化utils包设计详解
Dec 11 Python
Python中%是什么意思?python中百分号如何使用?
Mar 20 Python
使用python爬虫获取黄金价格的核心代码
Jun 13 Python
Python反爬虫技术之防止IP地址被封杀的讲解
Jan 09 Python
关于python3中setup.py小概念解析
Aug 22 Python
学python安装的软件总结
Oct 12 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
python实现IOU计算案例
Apr 12 Python
Opencv常见图像格式Data Type及代码实例
Nov 02 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
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
PHP的中问验证码
2006/11/25 PHP
THINKPHP+JS实现缩放图片式截图的实现
2010/03/07 PHP
20个PHP常用类库小结
2011/09/11 PHP
php共享内存段示例分享
2014/01/20 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
[44:40]Serenity vs Pain 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
python的迭代器与生成器实例详解
2014/07/16 Python
整理Python中的赋值运算符
2015/05/13 Python
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
Python检测数据类型的方法总结
2019/05/20 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
python 监控服务器是否有人远程登录(详细思路+代码)
2020/12/18 Python
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
Ootori在线按摩椅店:一家专业的按摩椅制造商
2019/04/10 全球购物
简历自我评价怎么写好呢?
2014/01/04 职场文书
财务部会计岗位职责
2015/02/03 职场文书
西安大雁塔导游词
2015/02/10 职场文书
安全承诺书格式范本
2015/04/28 职场文书
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript
Golang 对es的操作实例
2022/04/20 Golang