物件導向 類方法和靜態方法

2021-10-02 19:58:16 字數 863 閱讀 7742

1. 在類定義中,使用@classmethod裝飾器修飾的方法

2. 必須至少有乙個引數,且第乙個引數留給了cls,cls指代呼叫者即類自身

3. cls這個識別符號可以是任意合法名稱,但是為了易讀,最好不要修改

4. 通過cls可以直接操作類的屬性

1. 在類定義中,使用@staticmethod裝飾器修飾的方法

2. 呼叫時,不會隱式的傳入引數,比如(self、cls)(其他引數可以類似普通函式一樣定義)

靜態方法只是表明這個方法屬於這個名字空間。函式歸在一起,方便管理

class myclass:

*** = "***"

def foo(self):

print("foo")

@classmethod

def clsmth(cls): #類方法定義,類方法至少有乙個引數,且第乙個引數必須為類引數,即cls,cls表示類本身,區別於其他self,因為self代表類的例項或者類物件

print("{}.*** = {}".format(cls.__name__, cls.***))

@staticmethod #靜態方法可以理解為屬於類範圍內的普通方法,不需要傳self也不需傳cls引數

def staticmth(): #類的靜態方法定義

print("static")

a = myclass()

a.foo()

myclass.bar()

myclass.clsmth()

a.clsmth() #等價於a.__class__.clsmth()

myclass.staticmth()

a.staticmth()

物件導向 類方法和靜態方法

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

物件方法的類方法和靜態方法

class animal object leg 四隻腳 definit self,name,colour self.name name self.colour colour staticmethod def run print 喜歡奔跑 classmethod def eat cls print c...

類方法和靜態方法

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