Python 靜態方法 類方法

2021-08-21 16:35:27 字數 1195 閱讀 3538

一、靜態方法

乙個不能訪問例項變數和類變數的方法,它與類唯一的關聯就是需要通過類名來呼叫這個方法。

class person(object):

def __init__(self, name):

self.name = name

def eat(self):

print("%s is eating"%self.name)

@staticmethod # 把sleep()方法變為靜態方法

def sleep():

print("is sleeping")

p=person("abc")

p.eat()

p.sleep()

二、類方法

類方法和普通方法的區別是, 類方法只能訪問類變數,不能訪問例項變數

class person(object):

na="qqq"

def __init__(self, name):

self.name = name

def eat(self):

print("%s is eating"%self.name)

@classmethod # 把sleep()方法變為類方法

def sleep(self):

print("%s is sleeping"%self.na)

p=person("abc")

p.eat()

p.sleep()

執行結果:

三、屬性方法

屬性方法的作用就是通過@property把乙個方法變成乙個靜態屬性,想呼叫已經不需要加()號了,直接p.sleep就可以了

class person(object):

na="qqq"

def __init__(self, name):

self.name = name

def eat(self):

print("%s is eating"%self.name)

@property # 把sleep()方法變為類方法

def sleep(self):

print("%s is sleeping"%self.na)

p=person("abc")

p.eat()

p.sleep

Python 類方法 靜態方法

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

python靜態方法 類方法

常規 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.靜態方法 名義上由類管理,而實際在呼叫時,需...

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

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