私有属性的获取和设置,需要提供外部访问的方法,就需要使用到setter和getter
🌰
class TestClass:
def __init__(self):
self.__name = "yhl"
def getName(self):
return self.__name
def setName(self, newValue):
if isinstance(newValue,str):
self.__name = newValue
else:
print ("格式错误")
t = TestClass()
t.__name = "666"
print t.__name
print t.getName()
print t.__dict__.keys()
print t._TestClass__name
这里需要注意的是对象里面有一个私有属性__name。其实这个私有属性在外面的对应的名字是 _类名__属性名。在这个例子里面就是 _TestClass__name。
既然这样,那么在外部调用 t.__name = "666" 那么就是直接给对象添加一个共有属性名字叫__name。
网友评论