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

Python面向对象程序设计之私有变量,私有方法原理与用法分析

邹德泽
2023-03-14
本文向大家介绍Python面向对象程序设计之私有变量,私有方法原理与用法分析,包括了Python面向对象程序设计之私有变量,私有方法原理与用法分析的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了Python面向对象程序设计之私有变量,私有方法原理与用法。分享给大家供大家参考,具体如下:

  • python的私有化是为了规划私有属性,避免非相关的访问【假如!我有老婆,你不能直接知道我老婆是谁,你只有问我才会知道,即我的私有属性只有我知道】
  • 在python中定义私有变量和私有方法只需要在变量名或函数名前加上 "__"两个下划线
  • 在类内部的方法中使用时  self.__变量名或函数名。
  • 实际上,如果真要访问私有变量和私有方法,也是可以访问的,因为实际上私有化的操作只是将变量或函数名更改了而已:
    • 下例中由private_value变为了_A__private_value【即_类名__属性名】,但为了保持私有性,不建议直接使用这种方法访问
    class A:
      _private=6
      __private_value=5
      def __private_func(self):
        print("hello")
      def get_private_value(self):
        return self.__private_value
    a=A()
    # print(a.__private_value)###报错,找不到该属性
    print(a.get_private_value())
    print(a._A__private_value)
  • 私有化变量和方法的继承:【子类不会继承基类私有属性,但仍然通过基类的函数来获取或可以强行访问】

class A:
  _private=6
  __private_value=5
  def __private_func(self):
    print("hello")
  def get_private_value(self):
    return self.__private_value
class B(A):
  pass
b=B()
# print(b.__private_value)#报错
print(b.get_private_value())#可以使用父类的方法来获取私有属性
print(b._A__private_value)#强制访问还是可以的

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

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

 类似资料:
  • 本文向大家介绍Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析,包括了Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python面向对象程序设计类变量与成员变量、类方法与成员方法用法。分享给大家供大家参考,具体如下: 类变量与成员变量 在类中声明的变量我们称之为类变量[静态成员变量], 在init

  • 本文向大家介绍Python面向对象程序设计之继承、多态原理与用法详解,包括了Python面向对象程序设计之继承、多态原理与用法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python面向对象程序设计之继承、多态原理与用法。分享给大家供大家参考,具体如下: 继承:多继承、super、__init__、重写父类变量或函数 多态 继承: 在Python3中,不写基类的类默认继承objec

  • 本文向大家介绍Python程序中的私有变量,包括了Python程序中的私有变量的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将学习Python类中的私有变量。 Python没有称为私有变量的概念。但是,大多数Python开发人员都遵循命名约定来告诉变量不是公共变量,而是私有变量。 我们必须以双下划线开头一个变量名称,以将其表示为私有变量(不是真的)。示例:-一,二等..,。 正如我们已

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

  • 我试图模拟一个私有方法(executeGetRequest),在我声明要为私有方法返回的模拟的那一行中,私有方法实际上是用null参数执行的,因此抛出了一个NullPointerException。 VlcPlayerMinimal。爪哇: VlcPlayerMinimalTest。爪哇: 堆栈跟踪: 它似乎PowerMockito实际上是调用的方法,我试图在行PowerMockito.do返回(

  • 本文向大家介绍PHP面向对象程序设计之对象生成方法详解,包括了PHP面向对象程序设计之对象生成方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP面向对象程序设计之对象生成方法。分享给大家供大家参考,具体如下: 对象 看个例子 再看一个更具有灵活性的案例 单例 点评:不能随意创建对象,只能通过Preferences::getInstance()来创建对象。 工厂模式 output