python靜態方法 類方法

2021-09-25 19:27:20 字數 2261 閱讀 1423

常規:

1

class

dog(object):

2def

__init__

(self,name):

3 self.name=name45

defeat(self):

6print('

%s is eating

'%self.name)

78 d1=dog('

lele')

9 d1.eat()

1.靜態方法:名義上由類管理,而實際在呼叫時,需要手動把例項物件傳進去作引數

1

class

dog(object):

2def

__init__

(self,name):

3 self.name=name

4@staticmethod

5def

eat(self):

6print('

%s is eating

'%self.name)

78 d1=dog('

lele')

9 d1.eat(d1)

2.類方法:只能訪問類變數,不能訪問例項變數

1

class

dog(object):

2name='xiaomei'

3def

__init__

(self,name):

4 self.name=name56

@classmethod

7def

eat(self):

8print('

%s is eating

'%self.name)

910 d1=dog('

lele')

11 d1.eat()

例項變數name='lele',類變數name='xiaomei'。

呼叫結果為:xiaomei is eating

3.屬性方法:把乙個方法變為乙個靜態屬性(用途:使用者只需要知道查詢結果(呼叫屬性),而複雜的實現過程不需要使用者知道。eg:第三方查詢航班)

1

class

dog(object):

2def

__init__

(self,name):

3 self.name=name45

6@property

7def

eat(self):

8print('

%s is eating

'%self.name)

910 d1=dog('

lele')

11 d1.eat

lele is eating

若要增加引數,可以通過 @屬性方法名.setter  來實現

class

dog(object):

def__init__

(self,name):

self.name=name

self.

__food=none

#將乙個方法變為靜態屬性

@property

defeat(self):

print('

%s is eating %s

' % (self.name,self.__food

))

#更改屬性方法

@eat.setter

def eat(self,food): #

增加了引數

self.__food=food

print('

%s is eating %s

' % (self.name, self.__food

))

#刪除屬性方法

@eat.deleter

defeat(self):

del self.__food

print('

已刪除'

)d1=dog('

lele')

d1.eat

d1.eat

='gutou'

#變成靜態屬性後,注意賦值方式

d1.eat

del d1.eat

lele is eating none

lele is eating gutou

lele is eating gutou

已刪除

Python 類方法 靜態方法

1 我們已經討論了類 物件可以擁有像函式一樣的方法,這些物件方法與函式的區別只是乙個額外的self變數 coding utf 8 usr bin python filename method.py class person grade 1 def init self,name self.name n...

Python 靜態方法 類方法

一 靜態方法 乙個不能訪問例項變數和類變數的方法,它與類唯一的關聯就是需要通過類名來呼叫這個方法。class person object def init self,name self.name name def eat self print s is eating self.name static...

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

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