python~類方法、例項方法、靜態方法
阿新 • • 發佈:2018-11-20
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()