我对 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 属性。
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