浅谈Python中的私有变量

作者:在路上的咸鱼 时间:2023-07-21 17:59:46 

私有变量表示方法

在变量前加上两个下划线的是私有变量。


class Teacher():
 def __init__(self,name,level):
   self.__name=name
   self.__level=level

#获取老师的等级
 def get_level(self):
   return self.__level

#获取名字
 def get_in_name(self):
   return self.__name

动态方法无法读取私有变量

即使是动态方法也无法读取私有变量,强行读取会报错。


#定义动态方法
def get_name(self):
 return self.__name

#动态方法赋值
Teacher.get_name=get_name

t=Teacher("GG",5)

print("level is: ",t.get_level())    #可行
print("name is",t.get_name())      #报错,显示没有该属性

动态方法无法修改私有变量

动态方法也无法修改私有变量,强行修改不会报错,但是没有效果。


t.set_name("NN")        #实际没有效果但是不报错
print(t.get_in_name())     #类内部获取名字,输出GG

强行读取和修改私有变量

那么强行要读取和改变私有变量怎么办呢?

有一个不推荐但是可行的办法:

私有属性在对象内部被名字是”类名_属性名”。

在这个例子里,是这样的:


print("name is",t._Teacher__name)      #输出GG
t._Teacher__name="AA"            #被改变了
print("name is",t._Teacher__name)      #输出AA

来源:http://blog.csdn.net/sinat_26114733/article/details/79391971

标签:Python,私有变量
0
投稿

猜你喜欢

  • SQL Server 2005如何设置多字段做关键字

    2009-01-08 15:57:00
  • Python中赋值的含义及说明

    2023-01-05 23:11:38
  • Python数据分析入门之教你怎么搭建环境

    2023-03-15 12:21:11
  • Python设置默认编码为utf8的方法

    2023-09-23 16:08:34
  • Python 分形算法代码详解

    2023-05-28 04:18:51
  • 详解如何使用nvm管理Node.js多版本

    2024-05-09 14:49:21
  • pydantic-resolve嵌套数据结构生成LoaderDepend管理contextvars

    2023-01-12 22:21:05
  • python 的numpy库中的mean()函数用法介绍

    2021-12-19 16:22:37
  • pycharm sciview的图片另存为操作

    2022-09-26 08:03:07
  • git push时卡住的解决方法(长时间不报错也不自动退出)

    2022-05-08 04:40:00
  • python3+PyQt5实现自定义分数滑块部件

    2023-08-03 02:15:28
  • 通过实例学习Python Excel操作

    2021-01-21 21:55:12
  • 细化解析:SQL Server数据库的集群设计

    2009-02-05 15:59:00
  • SqlServer获取存储过程返回值的实例

    2024-01-21 00:53:35
  • Python生成随机验证码的两种方法

    2022-06-27 02:39:56
  • python基于windows平台锁定键盘输入的方法

    2021-01-03 07:46:03
  • 如何实现Django Rest framework版本控制

    2022-10-30 02:29:19
  • SQL Server 查询分析器快捷键集合

    2007-08-17 09:42:00
  • 利用 Python 实现多任务进程

    2023-12-19 02:53:52
  • JavaScript实现简单随机点名器

    2024-04-10 16:18:39
  • asp之家 网络编程 m.aspxhome.com