面向对象之成员修饰符

# 成员修饰符:公有,私有

# 私有,只有自己好使,其他都不好使。只有在自己类中可以使用,在其他类中,不论是儿子,孙子都不好使。

# 如果要访问私有属性,只有通过中间人来访问,这个中间人就是这个类中的一个函数,此函数可以访问此类中的私有属性。

# 成员修饰符
# 私有的属性,只能在自己的范围内访问。自己访问自己。谁也不好使,不论是儿子,孙子。
class Foo:
    xo = "xo"
    __ox = "ox"

    def __init__(self):
        pass
        self.__name = "alex"
        print(self.__name)

    def __fetch(self, ):
        print(Foo.__ox)

    def fafafa(self):
        self.__fetch()


class Bar(Foo):
    def fetch(self, ):
        print(self.__name)


obj = Foo()
obj.fafafa()  # 找个中间人fafafa方法来调用__fetch()函数

 私有属性真的不能访问吗????

不是!!!!! (对象._类名__私有属性)

class Foo:
    xo = "xo"
    __ox = "ox"

    def __init__(self):
        pass
        self.__name = "alex"


    def __fetch(self, ):
        print(Foo.__ox)

    def fafafa(self):
        self.__fetch()


class Bar(Foo):
    def fetch(self, ):
        print(self.__name)



obj = Foo()
print(obj._Foo__name)  # 对象._类名__私有属性

 

posted @ 2018-10-14 17:03  xuwenwei  阅读(121)  评论(0编辑  收藏  举报