Python普通方法 靜態方法 類方法

2021-08-21 01:48:35 字數 1205 閱讀 8260

# -*-coding:utf-8-*-

# 普通方法,類方法,靜態方法的區別

__metaclass__ = type

class

tst:

name = 'tst'

data = 'this is data'

# 普通方法

defnormalmethod

(self, name)

: print

self.data, name

# 類方法,可以訪問類屬性

@classmethod

defclassmethod

(cls, name)

: print

cls.data, name

# 靜態方法,不可以訪問類屬性

@staticmethod

defstaticmethod

(name)

: print

name

tst = tst()

tst.data = 'this is new'

tst.normalmethod('name'

)tst.staticmethod('name'

)tst.classmethod('name'

)#結果

this is

new name

name

this is

data name

# error普通方法必須通過例項呼叫

# tst.normalmethod('name')

tst.classmethod('name'

)tst.staticmethod('name'

)#結果

this

is data name

name

def

normalmethod

(self,data)

@classmethod

defclassmethod

(cls,data)

@staticmethod

defstaticmethod

(data)

Python普通方法 靜態方法 類方法

coding utf 8 普通方法,類方法,靜態方法的區別 metaclass type class tst name tst data this is data 普通方法 defnormalmethod self,name print self.data,name 類方法,可以訪問類屬性 clas...

Python普通方法 靜態方法 類方法

普通方法,類方法,靜態方法的區別 metaclass type class tst name tst data this is data 普通方法 def normalmethod self,name print self.data,name 類方法,可以訪問類屬性 classmethod def ...

類方法,普通方法和靜態方法

類方法,普通方法和靜態方法 class game object 類屬性 num 0 例項方法 必須得有引數,def init self 例項屬性 self.name laowang 例項方法 必須得有引數 第乙個引數傳遞的是當前的物件 def init a 例項屬性 a.name laowang 類...