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()
'''
你看到我了'''
posted @ 2019-10-12 21:37  W文敏W  阅读(94)  评论(0编辑  收藏  举报