[英]How to fix "AttributeError: type object has no attribute" in python?
I am adding some code to the preset code to check the time availability, which is if the meeting time can fit into the proposed time schedule.我正在向预设代码添加一些代码以检查时间可用性,即会议时间是否适合建议的时间表。 However, I keep getting the following error.但是,我不断收到以下错误。 Can anyone please give me some advices?任何人都可以给我一些建议吗? Thanks so much for your time.非常感谢您的时间。
Preset codes:预设代码:
from datetime import datetime
class Meeting:
def __init__(self, start_time, end_time):
self.start_time = start_time
self.end_time = end_time
My codes:我的代码:
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)))
Your code raises this exception:您的代码引发此异常:
AttributeError: type object 'Meeting' has no attribute 'datetime'
At this line:在这一行:
meeting_start = Meeting.datetime.start_time.hour
Python is telling you that the Meeting
class doesn't have an attribute named datetime
. Python 告诉您Meeting
类没有名为datetime
的属性。 This is true: the Meeting
class is a factory for making meeting objects (or instances ), and these objects have start_time
and end_time
attributes, which can be accessed like this:这是真的: Meeting
类是制作会议对象(或实例)的工厂,这些对象具有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
Your check_availability function is being passed a list of meetings, so you need to loop over the list to check whether any of the meetings conflict with the proposed meeting time.您的 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.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.