访问列表中对象中Python对象的属性

问题描述 投票:0回答:1

我对 Python 和 OOP 非常陌生,所以如果我错过了任何其他信息或我的代码/逻辑中有错误,我希望得到有用的批评。

我在位置类中有一个对象初始化如下:

class Location:
   def __init__(self,x,y):
        self.x = x
        self.y = y

location1 = Location(0,0)
location2 = Location(1,1)

然后将该对象作为属性传递到名为 Passenger 的类和名为 Car 的类中,这两个类都按如下方式初始化:

class Passenger:
    def __init__(self, passenger_name, location):
        self.passenger_name = passenger_name
        self.location = location

passenger1 = Passenger("John Doe", location1)

class Car:
    def __init__(self, car_name, location, cost_per_mile):
        self.car_name = car_name
        self.location = location
        self.cost_per_mile = cost_per_mile

car1 = Car("car1", location2, 0.5)

最后,我有一个类初始化为变量“mobileApp”

class CarSharingApp:
    cars = []
    passengers = []

    def __init__(self):
        pass

    def add_car(self,car):
        CarSharingApp.cars.append(car)
        print(f"Car successfully added.")

    def add_passenger(self, passenger):
        CarSharingApp.passengers.append(passenger)
        print(f"Passenger successfully added.")

mobileApp = CarSharingApp()
mobileApp.add_car(car1)
mobileApp.add_passenger(passenger1)

它保存这些乘客和汽车对象的列表(它们仍然在其中保存位置对象)作为 CLASS 属性,而不是自然命名为“乘客”和“汽车”的列表中的实例属性。我的问题是我现在如何访问这些汽车和乘客对象的 (x,y) 坐标以便在方程中使用它们?我本质上需要找到汽车和乘客之间的距离。我知道如何访问列表本身,但不知道嵌套在对象列表中的位置对象 x 和 y 属性。

python list class object oop
1个回答
0
投票

CarSharingApp.cars 是包含汽车对象的列表。 CarSharingApp.cars[0] 访问第一辆车,CarSharingApp.cars[0].location 访问第一辆车的位置对象 CarSharingApp.cars[0].location.x 访问其 x 坐标

x_coordinate_of_first_car  = CarSharingApp.cars[0].location.x
y_coordinate_of_first_car = CarSharingApp.cars[0].location.y
# similarly
x_coordinate_of_first_passenger = CarSharingApp.passengers[0].location.x
y_coordinate_of_first_passenger = CarSharingApp.passengers[0].location.y
© www.soinside.com 2019 - 2024. All rights reserved.