如何从另一个 class 调用一个 class 的所有实例?
How to call all instances of a class from another class?
我有两个classes
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)]
每次我在当前时刻创建一个 Bike
实例时,我都想在 Bike
class 中调用和使用 cars_list
。
class Bike:
def __init__(self, position):
self.position = position
for i in cars_list:
# continue with code
因此,如果 cars_list
在创建新的 Bike
之前发生变化,则在 Bike
中调用当前的 cars_list
。我知道如何做到这一点的方法是将另一个参数添加到 Bike
where
def __init__(self, position, cars_list):
self.position = position
for i in cars_list:
# continue with code
并且在调用 bike 时,cars_list
作为参数传递。然而,有没有办法将当前 cars_list
存储在 Class Car
中,然后在 class 中创建一个名为 get_current_instances
的方法,以便可以在Bike
class?
这是 classic class 属性的用例,以及 Car 上的 class 方法 - 字面意思是您想要存储和检索有关 Car class 的数据.
例如:
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
我有两个classes
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)]
每次我在当前时刻创建一个 Bike
实例时,我都想在 Bike
class 中调用和使用 cars_list
。
class Bike:
def __init__(self, position):
self.position = position
for i in cars_list:
# continue with code
因此,如果 cars_list
在创建新的 Bike
之前发生变化,则在 Bike
中调用当前的 cars_list
。我知道如何做到这一点的方法是将另一个参数添加到 Bike
where
def __init__(self, position, cars_list):
self.position = position
for i in cars_list:
# continue with code
并且在调用 bike 时,cars_list
作为参数传递。然而,有没有办法将当前 cars_list
存储在 Class Car
中,然后在 class 中创建一个名为 get_current_instances
的方法,以便可以在Bike
class?
这是 classic class 属性的用例,以及 Car 上的 class 方法 - 字面意思是您想要存储和检索有关 Car class 的数据.
例如:
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