55 python 類方法和靜態方法

2021-09-26 06:20:42 字數 1635 閱讀 5211

是類物件所擁有的方法,需要用修飾器@classmethod來標識其為類方法,對於類方法,第乙個引數必須是類物件,一般以cls作為第乙個引數(當然可以用其他名稱的變數作為其第乙個引數,但是大部分人都習慣以』cls』作為第乙個引數的名字,就最好用』cls』了),能夠通過例項物件和類物件去訪問。

class

people

(object):

country =

'china'

#類方法,用classmethod來進行修飾

@classmethod

defgetcountry

(cls)

:return cls.country

p = people(

)print p.getcountry(

)#可以用過例項物件引用

print people.getcountry(

)#可以通過類物件引用

類方法還有乙個用途就是可以對類屬性進行修改:

class

people

(object):

country =

'china'

#類方法,用classmethod來進行修飾

@classmethod

defgetcountry

(cls)

:return cls.country

@classmethod

defsetcountry

(cls,country)

: cls.country = country

p = people(

)print p.getcountry(

)#可以用過例項物件引用

print people.getcountry(

)#可以通過類物件引用

結果顯示在用類方法對類屬性修改之後,通過類物件和例項物件訪問都發生了改變

需要通過修飾器@staticmethod來進行修飾,靜態方法不需要多定義引數。

class

people

(object):

country =

'china'

@staticmethod

#靜態方法

defgetcountry()

:return people.country

print people.getcountry(

)

從類方法和例項方法以及靜態方法的定義形式就可以看出來,類方法的第乙個引數是類物件cls,那麼通過cls引用的必定是類物件的屬性和方法;而例項方法的第乙個引數是例項物件self,那麼通過self引用的可能是類屬性、也有可能是例項屬性(這個需要具體分析),不過在存在相同名稱的類屬性和例項屬性的情況下,例項屬性優先順序更高。靜態方法中不需要額外定義引數,因此在靜態方法中引用類屬性的話,必須通過類物件來引用。

Python中類方法和靜態方法

要在類中使用靜態方法,需在靜態方法前面加上 staticmethod標記符,以表示下面的成員函式是靜態函式。使用靜態方法的好處 其函式不需要self引數,可以通過類呼叫該方法,不需要定義該類例項 當然通過類例項呼叫也沒有問題 類方法可以通過類或它的例項來呼叫,但 該方法的 第乙個引數cls是定義該方...

類方法和靜態方法

通過靜態方法和類方法能夠把相關的函式封裝到乙個類裡面,有效的將 組織起來,提高 的可維護性 class date object def init self,year,month,day self.year year self.month month self.day day 普通方法 def ech...

python例項方法 類方法和靜態方法

class testclassmethod object method method hoho def init self self.name leon def test1 self print test1 print self classmethod def test2 cls print cls...