当前位置: 首页 > 编程笔记 >

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

司知
2023-03-14
本文向大家介绍Python面向对象程序设计之私有属性及私有方法示例,包括了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面向对象程序设计之私有变量,私有方法原理与用法分析,包括了Python面向对象程序设计之私有变量,私有方法原理与用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python面向对象程序设计之私有变量,私有方法原理与用法。分享给大家供大家参考,具体如下: python的私有化是为了规划私有属性,避免非相关的访问【假如!我有老婆,你不能直接知道我老婆是谁,你只

  • 本文向大家介绍js面向对象之公有、私有、静态属性和方法详解,包括了js面向对象之公有、私有、静态属性和方法详解的使用技巧和注意事项,需要的朋友参考一下 现下,javascript大行其道,对于网站开发人员来说,javascript是必需掌据的一门语言,但随着jquery等框架的流行和使用,许多人对于原生javascript缺乏深入的理解,习惯了函数式的编辑风格,对于闭包、原型总是说不清道不明.对于

  • 在 Python 的面向对象编程中,私有属性是只能在类的实例方法中访问的属性,不允许在外界访问私有属性。 1. 私有属性的定义 1.1 定义 在属性名称前加上前缀 __,表示该属性为私有属性,示例代码如下: class Object: def method(self): self.__private_attribute = 123 在第 3 行,创建一个私有属性 __pr

  • 我们知道面向对象设计项目的时候,特别是Java项目,属性一般有getter/setter方法, 但是有时候我们又是直接使用类实例的属性(直接点出) 请问下: 1、推荐给所有属性都加getter/setter方法,然后设置属性为私有吗? 2、什么场景对属性使用getter/setter,什么场景不对属性使用呢?

  • 本文向大家介绍Python面向对象程序设计示例小结,包括了Python面向对象程序设计示例小结的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python面向对象程序设计。分享给大家供大家参考,具体如下: 示例1: 运行结果: 2 a value is 123 b value is 321 {'a': 123, 'b': 321} 示例2: 示例3: 运行结果: 这是一个父类 这是一个子类

  • 问题内容: 在Java中,两者之间有什么区别? 和 都是和,不同之处在于属性。 有什么更好的?又为什么呢? 问题答案: 通常,是指“与类型本身相关联,而不是与类型实例相关联”。 这意味着你可以在没有创建类型实例的情况下引用静态变量,并且任何引用该变量的代码都引用完全相同的数据。将其与实例变量进行比较:在这种情况下,该类的每个实例都有一个独立的变量版本。因此,例如: 打印出并且是分开的,因为x和y引

  • 本文向大家介绍如何让一个对象具有私有属性?相关面试题,主要包含被问及如何让一个对象具有私有属性?时的应答技巧和注意事项,需要的朋友参考一下 Symbol 生成的每个值都是独一无二的 用 Symbol 作 key 值 无论是 for in 或 for of都遍历不到 只能用Object.getOwnPropertySymbols 才可以遍历到

  • 本文向大家介绍PHPUnit测试私有属性和方法功能示例,包括了PHPUnit测试私有属性和方法功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHPUnit测试私有属性和方法功能。分享给大家供大家参考,具体如下: 一、测试类中的私有方法: 上面只是简单的写了一个类包含,一个私有变量和一个私有方法。对于protected和private方法,由于无法像是用public方法一样直接调用