Python--day7--物件導向編程進階

來源:互聯網
上載者:User

標籤:property   記錄   工具箱   經典   

介紹

學習記錄。。。。

目錄:

  1. 物件導向進階文法部分

  • 欄位

  • 方法

  • 屬性

經典類 新式類類的特殊成員反射

類

  • 欄位


    • 普通欄位

    • 靜態欄位

  • 方法


    • 普通方法

    • 類方法

    • 靜態方法

  • 屬性


    • 普通屬性

    • 私人屬性

欄位

普通欄位    屬於對象, 執行個體變數,存在每個執行個體裡面,進行執行個體的時候,開闢一個執行個體對象,

靜態欄位    屬於類,類變數, 記憶體中存在類裡面,沒執行個體化,也存在。

方法

class Animal:    def __init__(self,name):        self.name=name    hobbie = ‘meat‘    @classmethod ##類方法,不能訪問執行個體變數    def talk(self):        print("{}  is   talking".format(self.hobbie))    @staticmethod  ##靜態方法,不能訪問類變數 和執行個體變數,大多情況不用,類的工具箱    def walk():        print(" is   talking")    @property   ##屬性,下面就不是方法了,變成了一個屬性,但是依然可以訪問執行個體和類變數    def  habit(self):        print("{}  habit  is  xxoo".format(self.name))d = Animal("Hequan")Animal.talk()d.talk()d.walk()d.habitmeat  is   talkingmeat  is   talking is   talkingHequan  habit  is  xxoo


私人屬性 __

self.__num=num

經典類: 深度有限

新式類:廣度優先

類的特殊成員

  1. __doc__         列印注釋

  2. __module__   表示當前操作的對象在那個模組

  3. __class__       表示當前操作的對象的類是什麼

  4. __init__          構造方法,通過類建立對象時,自動觸發執行

  5. __del__          析構方法,當對象在記憶體中被釋放時,自動觸發執行。執行完成後,統一銷毀。

  6. __call__          對象後面加括弧,觸發執行 

  7. __dict__         查看類或對象中的所有成員、

  8. __new__ \ __metaclass__    類的產生 調用 順序依次是 __new__ --> __call__ --> __init__

反射

通過字串映射或修改程式運行時的狀態、屬性、方法

  1. hasattr

  2. getattr

  3. setattr

  4. delattr

if __name__=="__main__":

    server = WebServer(‘localhost‘,3306)

    if   hasattr(server,sys.argv[1]):              

        func = getattr(server,sys.argv[1])     ##擷取執行後面加的值  如 start

        func()


本文出自 “何全” 部落格,請務必保留此出處http://hequan.blog.51cto.com/5701886/1886936

Python--day7--物件導向編程進階

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.