我有两个课
class Car:
def __init__(self, position):
self.position = position
class Bike:
def __init__(self, position):
self.position = position
在一个单独的文件中,我正在创建多辆汽车和自行车:
cars_list = [Car(position[i]) for i in range(position_list)]
每当我在当前时刻创建一个cars_list
实例时,我都想在Bike
类中调用Bike
。
class Bike:
def __init__(self, position):
self.position = position
for i in cars_list:
# continue with code
因此,如果cars_list
刚好在创建新的Bike
之前发生更改,则在cars_list
中调用当前的Bike
。我知道如何执行此操作的方法是在Bike
其中
def __init__(self, position, cars_list):
self.position = position
for i in cars_list:
# continue with code
,并且在呼叫自行车时,将cars_list
作为参数传递。但是,是否有一种方法可以将当前cars_list
存储在类Car
中,然后在该类中创建一个名为get_current_instances
的方法,以便可以在Bike
类中对其进行调用?
答案 0 :(得分:0)
这是类属性的经典用例,也是Car上的类方法-实际上,您要存储和检索有关Car类的数据。
例如:
class Car:
car_list = []
def __init__(self, position):
self.position = position
Car.car_list.append(self)
@classmethod
def get_current_instances(cls):
return Car.car_list
class Bike:
def __init__(self, position):
self.position = position
# Example method to show how the Car class is used
def move(self, position):
cars = Car.get_current_instances()
for car in cars:
if car.position == position:
self.crash() # Arrgh a crash between the bike and car
else:
self.position = position