给实例动态添加方法,需引入types模块,用其的MethodType(要绑定的方法名,实例对象)来进行绑定;给类绑定属性和方法,可以通过 实例名.方法名(属性名) = 方法名(属性值) 来进行绑定。给类添加方法,通过@classmethod;给类添加静态方法通过@staticmethod
import types #定义了一个类class Person(object): num = 0 def __init__(self, name = None, age = None): self.name = name self.age = age def eat(self): print("eat food") #定义一个实例方法def run(self, speed): print("%s在移动, 速度是 %d km/h"%(self.name, speed)) #定义一个类方法@classmethoddef testClass(cls): cls.num = 100 #定义一个静态方法@staticmethoddef testStatic(): print("---static method----") #创建一个实例对象P = Person("老王", 24)#调用在class中的方法P.eat() # eat food #给这个对象添加实例方法P.run = types.MethodType(run, P)#调用实例方法P.run(180) # 老王在移动, 速度是 180 km/h #给Person类绑定类方法Person.testClass = testClass#调用类方法print(Person.num) # 0Person.testClass() print(Person.num) # 100 #给Person类绑定静态方法Person.testStatic = testStatic#调用静态方法Person.testStatic() # ---static method----
时间: 2024-10-05 08:41:51