class Car: pass
def buy(): "Bought a car"
Car.buy = buy
Car.buy()
在Car上调用buy方法会出错。这是为什么?
答案 0 :(得分:1)
Car
没有buy
方法。实际上它什么都没有。自从您使用pass
以来,这是一个空类。
以此为例:
class Car(object):
def buy(self):
print 'Bought a car'
car = Car()
car.buy()
>> 'Bought a car`
有关详细信息,请查看Python中的class
语法。
修改强>
您尝试做的事情会有效,但代码略有修改。
您可以将方法buy
绑定到类Car
,但是您需要使用实例而不是类来调用它。另请注意,buy
需要self
参数。
class Car: pass
def buy(self): print 'Bought a car'
Car.buy = buy
car = Car()
car.buy()
>> 'Bought a car'