Доступ к свойствам объекта, который является массивом в другом объекте в Python - PullRequest
0 голосов
/ 23 июня 2019

У меня есть два класса: CarRentComp и Cars.

CarRentComp имеет множество автомобилей.Мне нужно вставить в БД CarRentComp и один Car (поэтому массив сейчас имеет длину 1).

Моя проблема в том, что я не могу получить доступ к свойствам Cars.

Я прихожуиз фона Java / C #, поэтому я пытаюсь перевести часть того, что я сделал, в Python.

Два файла:

class Car():
__plate=""

def set_plate(self, pPlate):
    self.__plate=pPlate

def get_plate(self):
    return self.__plate

def __init__(self,pPlate):
    self.set_plate(pPlate)

from car import Car
class CarRentComp():
__name=""
__cars=[Car("")]

def set_name(self, pName):
    self.__name=pName
def get_name(self):
    return self.__name

def set_cars(self, pCars):
    self.__name=pCars

def get_cars(self):
    return self.__cars

def __init__(self,pName, pCars):
    self.set_name(pName)
    self.set_cars(pCars)

from carrentcomp import CarRentComp
class OpsCarRentComp():

    def insert_carrentcomp(self, carrentcomp = CarRentComp):
        name = carrentcomp.get_name()
        vehicles = carrentcomp.get_cars()

        car1 = vehicles[0]

        plate = car1..get_plate()

Я вызываю insert_carrentcomp из другого файла и добавляюCarRentComp и его автомобиль в массиве:

car1 = Car("AAA2345")

add_car_rent_comp= CarRentComp("Deluxe Cars", [car1])

OpsCarRentComp.insert_carrentcomp(OpsCarRentComp, add_car_rent_comp)

Я не могу получить доступ к свойствам автомобилей, например к его табличке из класса OpsCarRentComp.

plate = car1..get_plate () --Когда я сравниваю его с CarRentComp, это один из аргументов, который принимает мой метод.Я немного борюсь с Python и его более простым способом сделать что-либо.

1 Ответ

0 голосов
/ 23 июня 2019

Поскольку метод insert_carrentcomp не использует self, вы можете захотеть сделать его @staticmethod.

Попробуйте что-то вроде:

class OpsCarRentComp:
    @staticmethod
    def insert_carrentcomp(carrentcomp: CarRentComp):
        name = carrentcomp.get_name()
        vehicles = carrentcomp.get_cars()

        car1 = vehicles[0]

        plate = car1.get_plate()

car1 = Car("AAA2345")

add_car_rent_comp= CarRentComp("Deluxe Cars", [car1])

OpsCarRentComp.insert_carrentcomp(add_car_rent_comp)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...