一、动态添加实例方法。
法一、需要调用types模块下的Methodtype方法。
法二、将对象作为参数传递进方法。
import types
class Car:
price = 1000
def __init__(self, color):
self.color = color
'''将setSpeed方法添加到Car类的一个示例对象car中,这就说明仅仅是car这一个示例对象可以使用,别的Car类的对象不能使用'''
def setSpeed(self, s):
self.speed = s
car = Car('red')
#法一、调用type方法
car.setSpeed = types.MethodType(setSpeed, car)
car.setSpeed(100) # 调用成员方法
#法二、将对象作为参数传递进去
car.setSpeed=setSpeed
car.setSpeed(car,100) # 必须将对象作为参数传递进去
print(car.speed)
二.动态添加类方法
不用使用types,直接添加就行。
import types
class Car:
price = 1000
def __init__(self, color):
self.color = color
'''将setSpeed方法添加到Car类的一个示例对象car中,这就说明所有的Car类的对象都可以使用'''
def setSpeed(self, s):
self.speed = s
car = Car('red')
Car.setSpeed = setSpeed
car.setSpeed(100) # 调用类方法
print(car.speed)