繁体   English   中英

访问列表中的 object class Python

[英]Access object class Python in List

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

    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)
    1. Class 房间是抽象的 class
    • 我创建了一个booking(list)来存储预订 class 的 object,该BookingRoom class 初始化时被初始化。
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
    1. SingleBed继承Room(ABC) ,价格 = 150,容量 =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()

我的问题:如何访问用 single1、single2、...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM