Доступ к классу объекта Python в списке - PullRequest
0 голосов
/ 05 августа 2020

У меня есть вопрос о доступе к классу объекта из списка в python. Я сравнил свои случаи с вопросами, которые касались переполнения стека, но это не сработало. Я представляю проблему следующим образом:

    1. Class Booking имеет свойства start_date, end_date
from datetime import *

class Booking:

    def __init__(self):

        self.year = int(input("Enter the Year: "))
        self.month = int(input("Enter the Month: "))
        self.day = int(input("Enter the Day: "))
        self.start_date = datetime.now()
        self.end_date = datetime(self.year, self.month, self.day)
  • Классная комната - это абстрактный класс
  • Я создаю booking(list) для хранения объекта класса Booking, который инициализируется при инициализации класса Room.
from abc import *
from booking import Booking

class Room(ABC):
    bookings = []

    def __init__(self, price, capacity):
        self.booking = Booking()
        self.price = price
        self.capacity = capacity
        self.bookings.append(self.booking)

    @abstractmethod
    def is_booked(self, start_date, end_date):
        pass
  • SingleBed наследует Room(ABC) с ценой = 150 и capachity = 2
from room import Room

class Singlebed(Room):

    def __init__(self):
        super(Singlebed, self).__init__(150, 2)

    def is_booked(self, start_date, end_date):
        if start_date >= end_date:
            print("EndDate must be greater than StartDate")
        is_Booked = False
        for check_booking in self.bookings:
            is_Booked = check_booking... (I wants to access objects.end_date in class Booking is saved in bookings)

single1 = Singlebed()
single2 = Singlebed()
single3 = Singlebed()
single4 = Singlebed()
single5 = Singlebed()

Мой вопрос: как мне получить доступ к объекту object.end_date, который инициализируется с помощью single1, single2, ...

1 Ответ

0 голосов
/ 05 августа 2020

Вы перебираете self.bookings, поэтому check_booking - это ваш экземпляр Booking и содержит атрибут start_date, end_date, year, month, day

   def is_booked(self, start_date, end_date):
        if start_date >= end_date:
            print("EndDate must be greater than StartDate")
        is_Booked = False
        for check_booking in self.bookings:
            is_Booked = check_booking.start_date

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