Python面向对象程序设计之私有属性及私有方法示例

yipeiwu_com5年前Python基础

本文实例讲述了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数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

Python hashlib常见摘要算法详解

这篇文章主要介绍了Python hashlib常见摘要算法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python的hashl...

浅谈Django2.0 加xadmin踩的坑

如果是django2.0 必须下载xadmin2.0 不然很多地方不兼容 xadmin2.0下载地址 https://github.com/sshwsfc/xadmin/tree/dja...

python 和c++实现旋转矩阵到欧拉角的变换方式

python 和c++实现旋转矩阵到欧拉角的变换方式

在摄影测量学科中,国际摄影测量遵循OPK系统,即是xyz转角系统,而工业中往往使用zyx转角系统。 旋转矩阵的意义:描述相对地面的旋转情况,yaw-pitch-roll对应zyx对应k,...

python django使用haystack:全文检索的框架(实例讲解)

python django使用haystack:全文检索的框架(实例讲解)

haystack:全文检索的框架 whoosh:纯Python编写的全文搜索引擎 jieba:一款免费的中文分词包 首先安装这三个包 pip install django-haystac...

Python内置函数delattr的具体用法

delattr 函数用于删除属性。 delattr(x, 'foobar') 相等于 del x.foobar。 语法 setattr 语法:delattr(object, nam...