day21_限制访问机制
访问限制机制
1 在类的内部定义,凡是以__
开头的数据属性与方法属性,都会被python内部隐藏起来,让外部不能直接访问
class Foo:
def __f1(self):
print('你看到我了')
foo = Foo()
foo.__f1() # 报错:AttributeError: 'Foo' object has no attribute '__f1'
2 可以通过内部提供的接口访问
class Foo:
def __f1(self):
print('你看到我了')
def get_api(self):
'''此处为访问条件逻辑代码,通过则执行下面的代码'''
self.__f1()
foo = Foo()
foo.get_api()
'''
你看到我了'''
3 特殊方法直接调用(phthon不会真的限制死):_类名+方法名
class Foo:
def __f1(self):
print('你看到我了')
foo = Foo()
foo._Foo__f1()
'''
你看到我了'''