事前設定されたコードにコードを追加して、時間の空き状況を確認します。これは、会議の時間が提案されたタイムスケジュールに収まるかどうかを確認するためです。ただし、次のエラーが発生し続けます。誰かアドバイスをいただけますか?お時間をいただき、誠にありがとうございます。
プリセットコード:
from datetime import datetime
class Meeting:
def __init__(self, start_time, end_time):
self.start_time = start_time
self.end_time = end_time
私のコード:
def check_availability(meetings, proposed_time):
meeting_start = Meeting.datetime.start_time.hour
meeting_end = Meeting.datetime.end_time.hour
ok_time = datetime.proposed_time.hour
if meeting_start < ok_time < meeting_end:
return True
else:
return False
meetings = [Meeting(datetime(2018, 8, 1, 9, 0, 0), datetime(2018, 8, 1, 11,
0, 0)), Meeting(datetime(2018, 8, 1, 15, 0, 0), datetime(2018, 8, 1, 16, 0,
0)), Meeting(datetime(2018, 8, 2, 9, 0, 0), datetime(2018, 8, 2, 10, 0, 0))]
print(check_availability(meetings, datetime(2018, 8, 1, 12, 0, 0)))
print(check_availability(meetings, datetime(2018, 8, 1, 10, 0, 0)))
コードで次の例外が発生します。
AttributeError: type object 'Meeting' has no attribute 'datetime'
この行で:
meeting_start = Meeting.datetime.start_time.hour
Pythonは、Meeting
classにはdatetime
という名前の属性がないことを通知しています。これは真実です:Meeting
classは会議を行うためのファクトリですobjects(またはinstances)、そしてこれらのオブジェクトにはstart_time
がありますおよびend_time
属性。これらには次のようにアクセスできます。
>>> meeting = Meeting(datetime(2018, 8, 1, 9, 0, 0), datetime(2018, 8, 1, 11,
0, 0))
>>> print(meeting.start_time)
2018-08-01 09:00:00
>>> print(meeting.end_time)
2018-08-01 11:00:00
Check_availability関数には会議のリストが渡されているため、リストをループして、提案された会議時間と競合する会議があるかどうかを確認する必要があります。
def check_availability(meetings, proposed_time):
# Loop over the list of meetings; "meeting"
# is the meeting that you are currently inspecting.
for meeting in meetings:
# if proposed_time is between meeting.start_time
# and meeting.end_time, return False
# If you get through the list without returning False
# then the proposed time must be ok, so return True.