Python的私有化屬性

2021-01-07 雨梓豪

源碼:class Employee(object):def __init__(self): self.name = "姓名" # 公共變量(public),外部可以訪問該變量 self._age = "年齡" # 受保護的屬性(proteced),類裡面或者是子類中可以訪問該變量 self.__salary = "工資" # 私有變量, 只能在當前類裡面訪問 print(self.__dict__) # 魔法屬性(變量),python內置的具有特殊意義的屬性(變量),開發者不要以該方式命名變量 self.from_ = '籍貫' # 當變量命名與關鍵字衝突時,通常會在變量名後加 單下劃線,以示區別 def show(self): # 在類的內部訪問公共變量,受保護的變量,私有變量 print('類內部調用公共屬性:', self.name) print('類內部調用受保護屬性:', self._age) print('類內部調用私有屬性:', self.__salary)# 創建對象employee = Employee()employee.show()print('外部調用公共屬性:', employee.name) # 在外部引用公共變量print('外部調用受保護屬性:', employee._age) # 在外部引用受保護變量,雖然不會報錯,但這種引用是不友好的,有警告提示print('外部調用私有屬性:', employee.__salary) # 在外部引用私有變量,會報錯

相關焦點

  • Python類的概念、定義、屬性、繼承
    ') self.name = name self.food = food def get_name(self): print(self.name) 5.類的私有屬性和方法 在Python中,通過單下劃線」_」來實現模塊級別的私有化,一般約定以單下劃線」_」開頭的變量
  • Python中類和類的實例化、私有屬性面,以及面向對象的三大屬性
    類屬性也就是說類的屬性就是它們的共有屬性,將他們共同的部分寫在前面可以節省一部分的代碼,使得代碼顯示的更簡潔美觀。實例化化的屬性,就是他們之間的不同部分,這個是不能省略的。如果要從新修改類屬性,以上代碼為列,可以用從新賦值的方法進行操作,即:dog.eye=4,這樣就完成了從新賦值的修改操作。3.私有化對於Python中的類屬性,可以通過雙下劃線」__」來實現一定程度的私有化。「 _」和「 __」的使用 更多的是一種規範/約定,沒有真正達到限制的目的。「_」:以單下劃線開頭只能允許其本身與子類進行訪問,(起到一個保護的作用)。
  • python進階教程之private私有化
    私有化xx: 公有變量_x: 單前置下劃線,私有化屬性或方法,from somemodule import *禁止導入,類對象和子類可以訪問__xx:雙前置下劃線,避免與子類中的屬性命名衝突,無法在外部直接訪問(名字重整所以訪問不到)__xx__:雙前後下劃線,用戶名字空間的魔法對象或屬性。
  • python進階教程之內建屬性
    內建屬性"teachclass.py"class Person(object):passpython3.5中類的內建屬性和方法經典類(舊式類),早期如果沒有要繼承的父類如定義__init__方法時,需自己手動調用父類的 __init__方法常用專有屬性說明觸發方式__init__構造初始化函數創建實例後,賦值時使用,在__new__後__new__生成實例所需屬性創建實例時__class__實例所在的類實例
  • python面向對象三大特徵
    大概所有變成初學者初學者最頭疼的第一道坎就是面向對象的理解封裝從封裝本身去理解 就是把小貓小狗用袋子裝起來,然後把袋子的小口封上私有化方法:方法的私有化可以保護好一些核心的代碼,可以添加條件,是別人不能不滿足條件的更改,進行代碼的保護,python
  • Python奇技淫巧你知道多少?
    點擊關註上方「SQL資料庫開發」,設為「置頂或星標」,第一時間送達乾貨顯示有限的接口到外部當發布python一行作判斷當條件滿足時, 返回的為等號後面的變量, 否則返回else後語句裝飾器之單例staticmethod裝飾器classmethod裝飾器, 類方法(給人感覺非常類似於OC中的類方法), 其中第一個隱式參數為類staticmethod裝飾器, 沒有任何隱式參數. python
  • python 類(3) 私有屬性/方法
    慢慢努力吧內容提要類中的__變量python中,在類的定義中在變量名前加雙下劃線的變量,稱為類的私有屬性,其本意是不讓類的實例訪問變量class MyClass(object): def __init__(self): self.
  • Python 內置方法和屬性應用:反射和單例
    類的屬性我們來看下一個類的申明,如下:class Foo():    """this is test class"""    def __init__(self, name):        self.name = name        def run(self):        print('running')
  • 私有化陽謀:張維迎式私有化只會帶來浩劫
    而所謂搞私有化轉型的前蘇東和拉美國家,資本寡頭的壟斷也越來越成為一種趨勢,想必俄羅斯金融寡頭的「威名」讀者也都聽過。作為一名知名的經濟學者,把私有化當作是解決一切問題的靈丹妙藥,而對於私有化在全球其他地區的不良影響視而不見,不是別有用心,就是知識結構上出了問題。
  • Python基礎知識
    ● 定義:²     ▷直接引用: 直接跟在類名後面定義的屬性,或在定義          類時,直接寫在類裡的屬性是 類屬性     ▷直接引用: 直接跟在實例名後面定義的屬性是實例屬           性  ● 訪問:     ▷直接引用: 類屬性既能被類對象訪問,也能被實例對象訪問     ▷直接引用: 實例屬性只能被實例對象訪問注意
  • Python 性能優化
    不同的語言會有不同的側重,python語言毫無疑問更在乎編碼效率,life is short,we use python。雖然使用python的編程人員都應該接受其運行效率低的事實,但python在越多越來的領域都有廣泛應用,比如科學計算 、web伺服器等。程式設計師當然也希望python能夠運算得更快,希望python可以更強大。
  • python他律筆記系列二
    pass 語句是python中新增的語句,pass語句不做任何事情,就是佔一個地方6.python3 迭代器與生成器迭代器是一個可以記住遍歷的位置的對象迭代器對象從集合的第一個元素開始訪問,直至所有的元素被訪問完結束。迭代器只能往前不會後退。
  • Python基礎篇-13 Python不是內部或外部命令的解決方法
    公眾號關注「專攻python」,設為「星標」重磅文章,第一時間送達!!
  • Python基本語法V1.5
    介紹1.1 介紹Python這種腳本語言福哥已經給大家介紹過了,現在童鞋們應該已經會安裝python的開發環境了,接下來我們需要針對python語言進行一個系統的學習。不過學習過c/c++、java、php語言的老鳥會有一種感覺,就是python的語法真BT啊~~V1.5版本增加了如下內容的教程:函數參數默認值的使用對象類型屬性和數組類型屬性的坑拋出異常語句的技巧2.
  • Python安裝教程和使用技巧
    window系統中,python有多種開發工具,例如1.直接在cmd命令窗口執行,但此種僅能單條語句執行,不能運行完整的程序。2.python自帶的集成開發環境,可通過開始——所有程序——python3.3——IDLE(Python GUI)啟動。3.其他集成開發環境,如PythonWin等,有編輯和調試能力,還實現了MFC類庫存的包裝。使用python自帶的開發環境。
  • python格式化字符串研究
    前言與隊友交流時提及python的格式化字符串漏洞,這個漏洞之前接觸不多,所以寫篇文章從基礎部分仔細研究了研究。python環境是python3.7。同樣的,這種用法也可以用在類的屬性上,比如以下代碼會輸出字符串a的內置屬性__class__:print("{0.
  • 私有化「折戟沉沙」SOHO中國進退維谷
    來源:投資者網作者:葛凡梅歷經5個多月,SOHO中國有限公司(以下簡稱「SOHO中國」;0410.HK)的私有化計劃終於畫上句號。但,結局並不圓滿。8月13日,SOHO中國發布公告稱,因未達成共識,終止早前要約私有化事項。SOHO中國的私有化計劃,於今年三月初開始啟動。
  • 《流暢的python》閱讀筆記(上)
    __format__(format_spec) 方法. format_spec 是格式說明符,它是:Python的私有屬性和"受保護的"屬性python中對於實例變量沒有像 private 這樣的修飾符來創建私有屬性, 在python中, 有一個簡單的機制來處理私有屬性.
  • Python沙箱逃逸的n種姿勢
    我們可以利用dir或者dict屬性去獲得一個模塊,類的所有屬性,但是當前環境的已定義的函數又從哪找呢我們知道,使用python直接執行的模塊是__main__模塊,使用__name__屬性也可以知道(if __name__ == __main__'),但是__name__中獲得的只是一個字符串,並不是一個模塊的引用,那麼我們從哪去找本模塊的引用呢
  • 田文林:土耳其經濟私有化的後果及教訓啟示
    4主要政策包括:國有企業私有化、減少政府對經濟幹預、推動國際自由貿易等。5 從1984年到2001年的17年間,土耳其私有化進程緩慢而有限。這一時期主要有兩大制度性措施:一是l994年制定《私有化法》,為經濟私有化提供法律保障;二是建立了專門的私有化高級理事會和私有化管理機構。