class ScenarioRunner(object):
ego_vehicles = [] # 类属性
def __init__(self, args):
self._args = args
# 创建两个实例
runner1 = ScenarioRunner("args1")
runner2 = ScenarioRunner("args2")
# 通过类本身访问和修改类属性
ScenarioRunner.ego_vehicles.append("vehicle1")
print(runner1.ego_vehicles) # 输出: ["vehicle1"]
print(runner2.ego_vehicles) # 输出: ["vehicle1"]
# 或者通过实例访问和修改类属性(结果相同)
runner1.ego_vehicles.append("vehicle2")
print(ScenarioRunner.ego_vehicles) # 输出: ["vehicle1", "vehicle2"]
print(runner2.ego_vehicles) # 输出: ["vehicle1", "vehicle2"]
当ego_vehicles
是一个类属性时,它属于ScenarioRunner
类本身,而不是类的任何特定实例。这意味着,不论你创建了多少个ScenarioRunner
的实例,它们都共享同一个ego_vehicles
列表。