python 定義類方法


定義類方法
和屬性類似,方法也分實例方法和類方法。

在class中定義的全部是實例方法,實例方法第一個參數 self 是實例本身。

要在class中定義類方法,需要這么寫:

class Person(object):
    count = 0
    @classmethod
    def how_many(cls):
        return cls.count
    def __init__(self, name):
        self.name = name
        Person.count = Person.count + 1

print Person.how_many()
p1 = Person('Bob')
print Person.how_many()
通過標記一個 @classmethod,該方法將綁定到 Person 類上,而非類的實例。類方法的第一個參數將傳入類本身,通常將參數名命名為 cls,上面的 cls.count 實際上相當於 Person.count。

因為是在類上調用,而非實例上調用,因此類方法無法獲得任何實例變量,只能獲得類的引用。

任務
如果將類屬性 count 改為私有屬性__count,則外部無法讀取__score,但可以通過一個類方法獲取,請編寫類方法獲得__count值。


class Person(object):

 
         

__count = 0
def __init__(self,name):
self.name=name;
Person.__count+=1

@classmethod
def how_many(cls):
return cls.__count

 
         

print Person.how_many()

 
         

p1 = Person('Bob')

 
         

print Person.how_many()

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM