首页 > 解决方案 > 在 List 中访问对象类 Python

问题描述

我有一个关于从 python 的列表中访问对象类的问题,我将我的案例与堆栈溢出但没有用的问题进行了比较。我提出的问题如下

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)
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
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()

我的问题:如何访问使用 single1、single2、... 初始化的 object.end_date

标签: pythonlistoop

解决方案


您正在遍历 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


推荐阅读