python面度對象(屬性,類方法,靜態方法)

來源:互聯網
上載者:User

標籤:調用   圖片   nbsp   查看   改變   類方法   class   count   __init__   

一. 屬性

  所謂的屬性,就是將一個類中的方法偽裝成一個屬性.在代碼的層級是沒有任何本質上的提升.但是讓代碼看起來更順眼.

class Person:    def __init__(self,name,age):        self.name = name        if type(age) is int:            self.__age = age        else:            print( ‘你輸入的年齡的類型有誤,請輸入數字‘)    @property   #屬性的查看. 裝飾器的用法    def age(self):        return self.__age    @age.setter     #屬性的修改    def age(self,a1):        ‘‘‘判斷,你修改的年齡必須是數字‘‘‘        if type(a1) is int:            self.__age = a1        else:            print(‘你輸入的年齡的類型有誤,請輸入數字‘)    @age.deleter    #屬性的刪除    def age(self):        del self.__agep1 = Person(‘帥哥‘,20)print(p1.age)p1.age = 23  #看上去更像是對某一個屬性進行操作print(p1.age)del p1.ageprint(p1.__dict__)

 

二. 類方法

  類方法:通過類名調用的方法,類方法中第一個參數約定俗成為cls, python自動將類名(類空間)傳給cls. 

class A:    def func(self):  # 普通方法        print(self)    @classmethod  # 類方法    def func1(cls):        print(cls)a1 = A()a1.func()A.func(a1)A.func1()a1 = A()a1.func1()  # 對象調用類方法,cls 得到的是類本身.

  類方法的使用情境:

    1. 類中有些方法不需要對象的參與時

class A:    name = ‘ale‘    count = 1    @classmethod    def func1(cls):  # 此方法無需對象參與        return cls.name + str(cls.count + 1)a1 = A()print(a1.func1())print(A.func1())

    2.對類中的靜態變數進行改變.

    3.繼承中,父類得到子類的類空間.

  也可以不通過類方法,讓父類中的某個方法得到子類空間的任意值

class A:    age = 12    def func2(self):        print(self)  # self 子類的對象,能得到子類 空間的任意值class B(A):    age = 22b1 = B()b1.func2()

 

三. 靜態方法

  靜態方法是類中的函數,不需要執行個體。靜態方法主要是用來存放邏輯性的代碼,主要是一些邏輯屬於類,但是和類本身沒有互動,即在靜態方法中,不會涉及到類中的方法和屬性的操作。可以理解為將靜態方法存在此類的名稱空間中。事實上,在python引入靜態方法之前,通常是在全域名稱空間中建立函數

  @staticmethod 裝飾靜態方法

  好處:

    代碼塊清晰

    提高複用性

 

  

python面度對象(屬性,類方法,靜態方法)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.