python私有属性和方法实例分析

作者:shichen2014 时间:2023-11-21 06:16:13 

本文实例分析了python的私有属性和方法。分享给大家供大家参考。具体实现方法如下:

python默认的成员函数和成员变量都是公开的,并且没有类似别的语言的public,private等关键词来修饰。 在python中定义私有变量只需要在变量名或函数名前加上 "__"两个下划线,那么这个函数或变量就会为私有的了。 在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername,所以你在外部使用原来的私有成员的名字时,会提示找不到。 比如:

class Person:

   def __init__(self):
       self.__name = 'haha'#私有属性
       self.age = 22

   def __get_name(self):##私有方法
       return self.__name

   def get_age(self):
       return self.age

person = Person()
print person.get_age()
print person.__get_name()
运行结果是:22 Traceback (most recent call last): File "E:\pythoner\zenghe\jay.py", line 38, in print person.__get_name() AttributeError: Person instance has no attribute '__get_name'

我们这里定义的__name是私有属性,__get_name()是私有方法。如果直接访问的话,会提示找不到相关的属性或者方法,但是如果你真要访问私有的相关数据的话, 也是可以访问的,严格地说,私有方法在它们的类外是可以访问的,只是不容易 处理。在 Python 中没有什么是真正私有的;在内部,私有方法和属性的名字被忽然改变和恢复,以致于使得它们看上去用它们给定的名字是无法使用的

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

标签:python,私有,属性,方法
0
投稿

猜你喜欢

  • Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例

    2021-06-17 20:46:53
  • python opencv通过4坐标剪裁图片

    2022-06-03 20:14:03
  • Go语言单链表实现方法

    2024-02-14 15:46:45
  • 在Django admin中编辑ManyToManyField的实现方法

    2021-03-05 18:03:47
  • Go语言题解LeetCode561数组拆分

    2023-06-20 22:49:14
  • MySQL 8.0 驱动与阿里druid版本兼容问题解决

    2024-01-17 06:25:49
  • 利用Python制作一个愚人节整蛊消息框

    2022-08-07 22:06:53
  • 深入了解Python 方法之类方法 & 静态方法

    2023-07-27 04:15:37
  • 微信小程序顶部导航栏可滑动并选中放大

    2023-08-23 18:49:59
  • Mysql主从复制注意事项的讲解

    2024-01-28 10:57:32
  • Django中传递参数到URLconf的视图函数中的方法

    2021-09-16 23:46:33
  • python的rllib库你了解吗

    2022-03-16 02:18:15
  • 任意定制文本对齐方式:CSS Text Wrapper

    2008-02-03 11:11:00
  • Golang中struct{}和struct{}{}的区别解析

    2024-04-23 09:36:21
  • python3中set(集合)的语法总结分享

    2022-06-06 21:44:56
  • 基于vue的video播放器的实现示例

    2024-05-05 09:23:31
  • 浅谈Python中的函数(def)及参数传递操作

    2023-01-20 20:13:54
  • Python GUI自动化实现绕过验证码登录

    2023-06-25 05:18:25
  • python打印异常信息的两种实现方式

    2023-11-17 15:37:41
  • ​如何愉快地迁移到 Python 3

    2021-06-25 19:44:17
  • asp之家 网络编程 m.aspxhome.com