類方法,靜態方法

2021-08-31 11:59:02 字數 800 閱讀 2483

# coding:utf-8

class test(object):

"""walk 為普通方法只能被物件instance呼叫,play 為靜態方法可以被物件和classname呼叫,

eat為類方法,可以被物件和classname呼叫。

此外pep8中一種程式設計風格,self通常用作例項方法的第一引數,cls通常用作類方法的第一引數;

即通常用self來傳遞當前類物件的例項,cls傳遞當前類物件,self和cls的不是強制的,staticmethod第一引數可以不傳

"""def __init__(self, name):

self.age = 33

self.name = name

def walk(self, place):

print place, self.walk.__name__, self

@staticmethod

def play(string):

print string

@classmethod

def eat(cls, food):

print food, cls, cls.walk.__name__

if __name__ == "__main__":

instance = test("shanghai")

instance.walk("huangpu_river")

instance.play("fire")

test.play("water")

test.eat("banana")

類方法 靜態方法

類方法 class goods discount 0.8 def init self,name,price self.name name self.price price property def price self return self.price goods.discount classme...

類方法,靜態方法

7.靜態方法與類方法 按引數區分 例項方法 定義 第乙個引數必須是例項物件,該引數名一般約定為 self 通過它來傳遞例項的屬性和方法 也可以傳類的屬性和方法 呼叫 只能由例項物件呼叫。靜態方法 定義 使用裝飾器 staticmethod。引數隨意,沒有 self 和 cls 引數,但是方法體中不能...

靜態屬性 類方法 靜態方法

靜態屬性 既可以訪問例項屬性也可以訪問類屬性 self 1 靜態屬性 資料屬性 2 class room 3 def init self,name,owner,width,length,height 4 self.name name 5 self.owner owner 6 self.width w...