python为什么有私有方法和变量

1. 访问安全,其实也没有决定的安全

>>> class humer(object):
...   def __init__(self, name):
...     self.name = name
...   def num(self):
...     print self.name
...   def __inner(self):
...     print 'this is inner'

此时访问__inner方法只能这样

>>> p._humer__inner()
this is inner
否则会报错

 

2. 在子类继承父类时,如果有相同的方法和变量的话,而我们想使用各自的方法和变量。此时就可以使用私有方法

class Foo(object):
    def __init__(self):
        self.__baz = 42
    def foo(self):
        print self.__baz

class Bar(Foo):
    def __init__(self):
        super(Bar,self).__init__()
        self.__baz = 21
    def bar(self):
        print self.__baz

>>> b = Bar()
>>> b.foo()
42
>>> b.bar()
21

#如果没有使用私有方法的话,那么foo和bar的值将都是子类的值

 

posted @ 2016-04-06 18:06  Rikewang  阅读(326)  评论(0编辑  收藏  举报