关于python类里面的私有管理
python没有绝对的私有属性方法
一般在属性、方法 前面加上下划线表示
但是直接也是访问不到的,见下面例子
class Test:
def __init__(self, foo):
self.__foo = foo
# 私有方法
def __bar(self):
print(self.__foo)
print('__bar')
def main():
test = Test('hello')
# 私有性
# 直接使用test.__bar()
# AttributeError: 'Test' object has no attribute '__bar'
# 改成这样,前面加上下划线类名,就能进行访问到私有方法,下面的__foo一样
test._Test__bar()
# print(test.__foo) 这样写,就会有下面的报错,后面改掉就行了。
# AttributeError: 'Test' object has no attribute '__foo'
print(test._Test__foo)
if __name__ == "__main__":
main()
使用装饰器更好的获取与修改内置属性
在初始化函数之后,针对需要获取的属性,加上装饰器@porperty
进行访问,加上属性.setter
或者delet这种来删除
class Person(