我试图模仿以下产出(来自Marakana.com s excellent Python 教程 ):
>>> for c in lot.cars_by_age():
... print c
1981 VW Vanagon
1988 Buick Regal
2010 Audi R8
到目前为止,我的代码是:
class ParkingLot(object):
def __init__(self, spaces, cars=[]):
self.spaces = spaces
self.cars = cars
def park(self, car):
if self.spaces == 0:
print "The lot is full."
else:
self.spaces -= 1
self.cars.append(car)
def __iter__(self):
return (car for car in self.cars)
class Car(object):
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
def __str__(self):
return %s %s %s % (car.year, car.make, car.model)
我想在“泊车 Lot () ” 类中添加一种方法( cars_ by_ age () ) 。 但是, 根据样本代码, 此方法需要某种可操作性 。 我不知道该如何操作 - 对于一个类, 您定义一个 < enger > iter < / strong > 函数, 但是对于一种方法, 您如何定义此方法?