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

2021-07-28 14:19:03 字數 1104 閱讀 5417

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

__metaclass__ = type

class tst:

name = 'tst'

data = 'this is data'

# 普通方法

def normalmethod(self, name):

print self.data, name

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

@classmethod

def classmethod(cls, name):

print cls.data, name

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

@staticmethod

def staticmethod(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)

類方法,可以通過cls訪問類屬性

@classmethod

def classmethod(cls,data)

靜態方法,不可以訪問,通過傳值的方式

@staticmethod

def staticmethod(data)

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

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

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

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

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

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