返回

西安博为峰教育

python私有变量怎么定义

python学习网更新时间:2023-01-10 浏览:379

python私有变量怎么定义

变量前加双下划线(只前缀双下划线),将被认为是私有变量,单下划线开头的成员变量和成员函数,其实就是public的,在类外不能访问,否则认为是公有的变量。
Python中默认的成员函数、成员变量都是公开的(public),而且python中没有类似public、private等关键词来修饰成员函数,成员变量。
在python中定义私有变量只需要在变量名或函数名前加上 "__" (两个下划线),那么这个函数或变量就会成为私有的了。
class aa:
'descript class aa'
__x = 12
def __init__(self):
print 'aa init....'
self._name = 'jeapedu'
@classmethod
def p(cls):
print 'class method?'
def getname(self):
return self._name
def setname(self, v):
self._name = v
name = property(getname, setname,fdel = None, doc = "propertyTest")
class bb(aa):
y = 13
def __init__(self):
print 'bb init....'
aa.__init__(self)
a = aa()
aa.p()
a.name = 'Jeapedu'
print a.name
print aa.__dict__
print a.__x
b = bb()
print "b.y, bb.y", b.y, bb.y
print bb.__dict__
#print b.__x, # 双下划线__x,是父类aa的私有变量,子类不可访问

运行结果
aa init....
class method?
Jeapedu
{'__module__': '__main__', '_aa__x': 12, 'name': <property object at 0x00BBAB40>, 'setname': <function setname at 0x00BBF830>, 'getname': <function getname at 0x00BBF7B0>, 'p': <classmethod object at 0x00BC7650>, '__doc__': 'descript class aa', '__init__': <function __init__ at 0x00BBF870>}
bb init....
aa init....
b.y, bb.y 13 13
{'y': 13, '__module__': '__main__', '__doc__': None, '__init__': <function __init__ at 0x00BBF8B0>}
<<< Process finished. (Exit code 0)
比较奇怪的是x前后有双下划线上边程序注释掉的语句可以执行,原因是前后双下划线的是给系统用的,用户一般不要定义这样的变量比较好!前后缀双下划线变量。
而前缀单下划线的变量是python普通变量。


相关资讯

怎么用热力图实现Python数据可视化
2021-10-28 1164
大数据可视化是计算机科学或深度学习新项目中十分特别的一环。一般,你需要在工程前期开展探究性的数据统计分析(EDA),进而对信息有一定的掌握,并且建立数据可视化的确能够使剖析的目的更清楚...
Python操作Excel教程:average函数求平均值的算法
2021-10-30 1060
Python操作Excel教程-average函数求平均值...
人工智能和创客教育有什么区别
2022-11-05 1032
人工智能和创客教育有什么区别对于人工智能,教育工作者首先要了解和接触这些技术,然后在课堂上介绍给学生。在这个过程中,教师...
Python入门学习路线图
2021-10-27 867
相对而言Python整体规划好学习路线图不断学习下来是能够掌握的,此外我有一套Python教程视频能够开展免费学习。下边我们先和大伙儿整体规划一下python基础学习路线图...
自学Python基础知识点小结
2021-10-27 859
达内教育对于基础薄弱新手发布一套Java免费视频实例教程,从进入到熟练,下边我们总结了通过自学Java的一些知识要点。...
Python元类相关知识点分享
2021-10-30 840
类是怎样造成的,怎么使用type建立类,了解什么叫元类,应用元类的实际意义,元类实战演练:ORM...
Python中的条件语句if else怎么使用
2021-11-01 829
标准支系句子if else,让程序流程挑选 哪些实行句子块的方式 (程序流程不会再是一句一句地次序实行)。标准支系的完成 if 逻辑...
Python的基础语法
2021-11-03 823
编写Paython程序流程以前*对英语的语法有一定的掌握,才可以编写标准的Python程序流程...

相关课程

栏目导航