1. 程式人生 > >python~類方法、例項方法、靜態方法

python~類方法、例項方法、靜態方法

class Foo(object):
    """類三種方法語法形式"""
 
    def instance_method(self):
        print("是類{}的例項方法,只能被例項物件呼叫".format(Foo))
 
    @staticmethod
    def static_method():
        print("是靜態方法")
 
    @classmethod
    def class_method(cls):
        print("是類方法")

python例項方法是需要傳入引數self
加上@staticmethod,可以無視self, 普通的函式使用, 可被多個例項共享, 靜態方法,引數沒有要求
@classmethod,類方法,第一個引數必須要預設傳類,一般習慣用cls

"""呼叫方法"""
# 例項方法
class Person(object):
    num = 0
    def __init__(self, name = None, age = None):
        self.name = name
        self.age = age
    def eat(self):
        print("eat food")

p = Person('老王', 24)
def run(self, speed):
    print('%s的速度是%d km/h'%(self.name, speed))

P.run = types.MethodType(run, P)
p.run(180)


# 靜態方法
@staticmethod
def work():
    print('是靜態方法')

p.work = work
p.work()


# 類方法
@classmethod
def go(cls):
    print('類方法')

p.go = go
p.go()