1. 程式人生 > >Python_從零開始學習_(38) 私有屬性和私有方法

Python_從零開始學習_(38) 私有屬性和私有方法

1.  應用場景及定義方式

應用場景

  • 在實際開發中,  物件 的 某些屬性或方法 可能只希望 在物件的內部被使用, 而 不希望在外部被訪問到
  • 私有屬性 就是 物件 不希望公開的 屬性
  • 私有方法 就是 物件 不希望公開的 方法

定義方式

  • 定義屬性或方法時,  屬性名或者方法名前 增加 兩個下劃線,  定義的就是 私有 屬性或方法
Women

name

__age

__init__(self, name):

__secret(self):

class Women:

    def __init__(self, name):

        self.name = name
        self.__age = 18

    def __secret(self):
        # 在物件的方法內部, 是可以訪問物件的私有屬性的
        print("%s 的年齡是 %d" % (self.name, self.__age))

    def tell(self):
        # 在物件的方法內部, 是可以訪問物件的方法
        self.__secret()


xiaofang = Women("小芳")

# 私有屬性, 在外界不能夠直接訪問
# print(xiaofang.age)
# 私有方法, 同樣不允許在外界直接訪問
# print(xiaofang.__secret())
xiaofang.tell()

 

2.  偽私有屬性和私有方法(科普不推薦使用)

提示 : 在日常開發中,  不要使用這種方法,  訪問物件的 私有屬性 或 私有方法

Python 中, 並沒有 真正意義私有

  • 再給 屬性, 方法 命名時,  實際是對 名稱 做了一些特殊處理,  使得外界無法訪問到
  • 處理方式: 在 名稱 前面加上 _類名 => _類名__名稱
# 私有屬性 這樣訪問
print(xiaofang._Women__age)
# 私有屬性 這樣訪問
print(xiaofang._Women__secret())