教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Python私有屬性和私有方法用法介紹

更新時間:2020年09月03日10時26分 來源:傳智播客 瀏覽次數(shù):

Python類的屬性一般分為私有屬性和公有屬性,如C++、C#、Java等面向?qū)ο蟮恼Z言都有定義私有屬性的關(guān)鍵字。而Python中沒有這類關(guān)鍵字,默認情況下所有的屬性都是“公有的”,這樣對類中屬性的訪問將沒有任何限制,并且都會被子類繼承,也能從子類中進行訪問。這肯定不是我們想要的。Python使用約定屬性名稱來達到這樣數(shù)據(jù)封裝的目的。如果屬性的名字以兩個下劃線開始,就表示為私有屬性;反之,沒有使用雙下劃線開始的表示公有屬性。類的方法也同樣使用這樣的約定。

應(yīng)用場景及定義方式

在實際開發(fā)中,對象的某些屬性或方法可能只希望在對象的內(nèi)部被使用,而不希望在外部被訪問到。

私有屬性就是對象不希望公開的屬性;

私有方法就是對象不希望公開的方法。


class Women:

    def __init__(selfname):

        self.name = name
        # 不要問女生的年齡
        self.__age = 18

    def __secret(self):
        print("我的年齡是 %d" % self.__age)


xiaofang = Women("小芳")
# 私有屬性,外部不能直接訪問
# print(xiaofang.__age)

# 私有方法,外部不能直接調(diào)用
# xiaofang.__secret()

私有屬性或方法定義方式(科普)

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

提示:在日常開發(fā)中,不要使用這種方式,訪問對象的私有屬性或私有方法。

Python中并沒有真正意義的私有

·在給屬性、方法命名時,實際是對名稱做了一些特殊處理,使得外界無法訪問到

·處理方式:在名稱前面加上    _類名 => _類名__名稱


# 私有屬性,外部不能直接訪問到
print(xiaofang._Women__age)

# 私有方法,外部不能直接調(diào)用
xiaofang._Women__secret()


猜你喜歡:

Python中cookie的設(shè)置方法
Python編程加入日志的方法
Python的GIL鎖是什么?
什么是Python?最全的python百科

0 分享到:
和我們在線交談!