美文网首页
25-python中访问限制

25-python中访问限制

作者: mingminy | 来源:发表于2017-12-22 09:40 被阅读0次

    我们可以给一个实例绑定很多属性,如果有些属性不希望被外部访问到怎么办?

    Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。看例子:

    class Person(object):    def__init__(self, name):        self.name = name        self._title = 'Mr'        self.__job= 'Student'p = Person('Bob')print p.name# => Bobprint p._title# => Mrprint p.__job# => ErrorTraceback (most recent call last):  File "", line 1, in AttributeError: 'Person' object has no attribute '__job'

    可见,只有以双下划线开头的"__job"不能直接被外部访问。

    但是,如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。

    以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。

    相关文章

      网友评论

          本文标题:25-python中访问限制

          本文链接:https://www.haomeiwen.com/subject/jtktgxtx.html