python变量前的单下划线(私有变量)和双下划线()详解编程语言
2023-06-13 09:11:48 时间
1.单下划线
_name = "WinerChan111" # 伪私有变量 __namedede = "WinerChan222" # 真正私有变量,但是增加get__namedede和set__namedede实例方法可访问 def get_namedede(self):
return self.__namedede
def set_namedede(self,s):
self.__namedede = s
print(MyName._name) print(MyName.__namedede) #############输出####################### class MyName: ... _name = "w1" ... __namedede = "w2" print(MyName._name) print(MyName.__namedede) Traceback (most recent call last): File " stdin ", line 1, in module AttributeError: type object MyName has no attribute __namedede
_name = "WinerChan111" # 伪私有变量 __namedede = "WinerChan222" # 真正私有变量,但是增加get__namedede和set__namedede实例方法可访问 def get_namedede(self):
return self.__namedede
def set_namedede(self,s):
self.__namedede = s
print(MyName._name) print(MyName.__namedede)
变量前的单下划线表示表面上私有 ,但是其实这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。
2.双下划线变量前的双下划线表示真正的私有,实际上的私有,只有内部可以访问,外部不能访问
但是有窍门,可以在类里面增加get__namedede和set__namedede这样的方法来突破限制,而且还能在方法里做验证。
3.其他(如:init):名称前后的双下划线是一种惯例,对Python系统来说,这将确保不会与用户自定义的名称冲突。通常,你将会覆写这些方法,并在里面实现你所需要的功能,以便Python调用它们。例如,当定义一个类时,你经常会覆写“init”方法
总结:
_name = "WinerChan111" # 伪私有变量 __namedede = "WinerChan222" # 真正私有变量,但是增加get__namedede和set__namedede实例方法可访问 def get_namedede(self):
return self.__namedede
def set_namedede(self,s):
self.__namedede = s
print(MyName._name) print(MyName.__namedede) #############输出####################### class MyName: ... _name = "w1" ... __namedede = "w2" print(MyName._name) print(MyName.__namedede) Traceback (most recent call last): File " stdin ", line 1, in module AttributeError: type object MyName has no attribute __namedede
_name = "WinerChan111" # 伪私有变量 __namedede = "WinerChan222" # 真正私有变量,但是增加get__namedede和set__namedede实例方法可访问 def get_namedede(self):
return self.__namedede
def set_namedede(self,s):
self.__namedede = s
print(MyName._name) print(MyName.__namedede)
###########输出###########
相关文章
- python的进制转换器,Python进制转换[通俗易懂]
- python教程:用简单的Python编写Web应用程序
- Python元组_python输出元组
- json转字符串 python_Python读取json
- python概念理解
- 【说站】python使用shelve保存变量
- 【说站】python unittest单元测试的过程
- centos 安装 python3_centos运行python脚本
- python rarfile不支持中文路径_python使用zipfile解压文件中文乱码问题
- Python学习之变量进阶【列表,元组】
- Pycharm 如何自动调整 Python 代码符合 pep8 编码规范
- Python面向对象编程-魔术方法-__iter__和__next__方法(一)
- Python实现截屏的函数详解编程语言
- Python模块——学习笔记详解编程语言
- Python类三种方法,函数传参,类与实例变量(一)详解编程语言
- Python学习:1.快速搭建python环境详解编程语言
- Linux创建Python文件的步骤(linux新建python文件)
- Python输出函数print()总结(python print())详解编程语言
- python实现批量转换文件编码(批转换编码示例)
- python爬虫教程之爬取百度贴吧并下载的示例
- 跟老齐学Python之深入变量和引用对象