请运行下面代码尝试(如果搞不定,先看后面的讲解,再尝试):
*
xx: 公有变量
_x: 单前置下划线,私有化属性或方法,from somemodule import
禁止导入,类对象和子类可以访问
_
xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)
xx
:双前后下划线,用户名字空间的魔法对象或属性。例如:
init
, __ 不要自己发明这样的名字
xx
:单后置下划线,用于避免与Python关键词的冲突
通过name mangling(名字重整(目的就是以防子类意外重写基类的方法或者属性)如:_Class__object)机制就可以访问private了。
#coding=utf-8
class Person(object):
def __init__(self, name, age, taste):
self.name = name
self._age = age
self.__taste = taste
def showperson(self):
print(self.name)
print(self._age)
print(self.__taste)
def dowork(self):
self._work()
self.__away()
def _work(self):
print('my _work')
def __away(self):
print('my __away')
c
版权声明:本文为qq_36171645原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。