有人可以解释下面的代码

时间:2015-11-27 15:28:54

标签: python

class Car: pass
def buy(): "Bought a car"
Car.buy = buy
Car.buy() 

在Car上调用buy方法会出错。这是为什么?

1 个答案:

答案 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'