Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新Python 3.6 datetime对象中的Python 2.7 datetime类型_Python_Python 3.x_Python 2.7_Python 3.6_Python Datetime - Fatal编程技术网

更新Python 3.6 datetime对象中的Python 2.7 datetime类型

更新Python 3.6 datetime对象中的Python 2.7 datetime类型,python,python-3.x,python-2.7,python-3.6,python-datetime,Python,Python 3.x,Python 2.7,Python 3.6,Python Datetime,我正在致力于使python 2.7代码与python 3.6兼容 代码在python 2.7中运行良好,但我在python 3.6中遇到了日期时间问题: def insert_event(self, subject_event): for x in range (0,self.event_count): if self.events[x].time <= subject_event.time: TypeError: '<=' not su

我正在致力于使python 2.7代码与python 3.6兼容

代码在python 2.7中运行良好,但我在python 3.6中遇到了日期时间问题:

 def insert_event(self, subject_event):
        for x in range (0,self.event_count):
            if self.events[x].time <= subject_event.time:


TypeError: '<=' not supported between instances of 'type' and 'datetime.datetime'
(Pdb) print (subject_event)
<event.Event object at 0x7f89b7cdb908>
(Pdb) print (subject_event.time)
2018-01-01 06:05:00
(Pdb) self.events
[<event.Event object at 0x7f89b7cd1da0>, <event.Event object at 0x7f89b7cd1828>]
(Pdb) self.events[0]
<event.Event object at 0x7f89b7cd1da0>
(Pdb) self.events[0].time
<class 'datetime.datetime'>



(Pdb) self.events[x]
<event.Event object at 0x7ffb339a31d0>
(Pdb) type(self.events[x])
<class 'event.Event'>
(Pdb) self.events[x].time
<class 'datetime.datetime'>
(Pdb) type(self.events[x].time)
<class 'type'>

(Pdb) self.events[x].__dict__
{'time': <class 'datetime.datetime'>, 'id': 'bcdfd404-67e9-4ef3-a699-8afde902685e', 'constraint': None, 'constraint_time': <class 'datetime.time'>, 'action': 'ShiftStart', 'cust_in_car': 0, 'previous': None, 'neo_id': 1340, 'user': None, 'place': None, 'resource': None, 'shift': None, 'linked': None, 'epoch': 1514775600000, '_driver': <neo4j.v1.direct.DirectDriver object at 0x7ffb339a3390>}
(Pdb) self.events[x].time.__dict__
mappingproxy({'__repr__': <slot wrapper '__repr__' of 'datetime.datetime' objects>, '__hash__': <slot wrapper '__hash__' of 'datetime.datetime' objects>, '__str__': <slot wrapper '__str__' of 'datetime.datetime' objects>, '__getattribute__': <slot wrapper '__getattribute__' of 'datetime.datetime' objects>, '__lt__': <slot wrapper '__lt__' of 'datetime.datetime' objects>, '__le__': <slot wrapper '__le__' of 'datetime.datetime' objects>, '__eq__': <slot wrapper '__eq__' of 'datetime.datetime' objects>, '__ne__': <slot wrapper '__ne__' of 'datetime.datetime' objects>, '__gt__': <slot wrapper '__gt__' of 'datetime.datetime' objects>, '__ge__': <slot wrapper '__ge__' of 'datetime.datetime' objects>, '__add__': <slot wrapper '__add__' of 'datetime.datetime' objects>, '__radd__': <slot wrapper '__radd__' of 'datetime.datetime' objects>, '__sub__': <slot wrapper '__sub__' of 'datetime.datetime' objects>, '__rsub__': <slot wrapper '__rsub__' of 'datetime.datetime' objects>, '__new__': <built-in method __new__ of type object at 0x9f7500>, 'now': <method 'now' of 'datetime.datetime' objects>, 'utcnow': <method 'utcnow' of 'datetime.datetime' objects>, 'fromtimestamp': <method 'fromtimestamp' of 'datetime.datetime' objects>, 'utcfromtimestamp': <method 'utcfromtimestamp' of 'datetime.datetime' objects>, 'strptime': <method 'strptime' of 'datetime.datetime' objects>, 'combine': <method 'combine' of 'datetime.datetime' objects>, 'date': <method 'date' of 'datetime.datetime' objects>, 'time': <method 'time' of 'datetime.datetime' objects>, 'timetz': <method 'timetz' of 'datetime.datetime' objects>, 'ctime': <method 'ctime' of 'datetime.datetime' objects>, 'timetuple': <method 'timetuple' of 'datetime.datetime' objects>, 'timestamp': <method 'timestamp' of 'datetime.datetime' objects>, 'utctimetuple': <method 'utctimetuple' of 'datetime.datetime' objects>, 'isoformat': <method 'isoformat' of 'datetime.datetime' objects>, 'utcoffset': <method 'utcoffset' of 'datetime.datetime' objects>, 'tzname': <method 'tzname' of 'datetime.datetime' objects>, 'dst': <method 'dst' of 'datetime.datetime' objects>, 'replace': <method 'replace' of 'datetime.datetime' objects>, 'astimezone': <method 'astimezone' of 'datetime.datetime' objects>, '__reduce_ex__': <method '__reduce_ex__' of 'datetime.datetime' objects>, '__reduce__': <method '__reduce__' of 'datetime.datetime' objects>, 'hour': <attribute 'hour' of 'datetime.datetime' objects>, 'minute': <attribute 'minute' of 'datetime.datetime' objects>, 'second': <attribute 'second' of 'datetime.datetime' objects>, 'microsecond': <attribute 'microsecond' of 'datetime.datetime' objects>, 'tzinfo': <attribute 'tzinfo' of 'datetime.datetime' objects>, 'fold': <attribute 'fold' of 'datetime.datetime' objects>, '__doc__': 'datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])\n\nThe year, month and day arguments are required. tzinfo may be None, or an\ninstance of a tzinfo subclass. The remaining arguments may be ints.\n', 'min': datetime.datetime(1, 1, 1, 0, 0), 'max': datetime.datetime(9999, 12, 31, 23, 59, 59, 999999), 'resolution': datetime.timedelta(0, 0, 1)})
def插入事件(自我、主题事件):
对于范围内的x(0,自事件计数):

如果self.events[x].time出现
TypeError
的原因是,在Python中,3个不同类型的对象不可比较(除了一些例外,例如数字类型)。在Python 2中,比较不同类型的对象是合法的

查看更多详细信息


顺便说一句,您很可能希望比较两个
datetime
实例,而不是类和实例。

比较的第一个值不是
datetime
实例,而是
datetime
类。请在python2.7和python3中尝试此操作:
import datetime;在Python2.7中键入(datetime.datetime.now()):from datetime import datetime;开始日期=日期时间,开始日期的类型为类型。在python 3.6中:从datetime导入datetime;开始日期=日期时间,开始日期的类型为class.start\u日期
(Pdb) self.events[x]
<event.Event object at 0x7fce0b43c590>
(Pdb) type(self.events[x])
<class 'event.Event'>
(Pdb) self.events[x].time
<type 'datetime.datetime'>
(Pdb) type(self.events[x].time)
<type 'type'>

(Pdb) self.events[x].__dict__
{'resource': None, 'constraint_time': <type 'datetime.time'>, 'constraint': None, 'shift': None, '_driver': <neo4j.v1.direct.DirectDriver object at 0x7fce0b43c910>, 'cust_in_car': 0, 'linked': None, 'epoch': 1514775600000, 'place': None, 'user': None, 'time': <type 'datetime.datetime'>, 'action': 'ShiftStart', 'neo_id': 2339, 'id': 'e828acca-5d32-42e1-967d-c044c775ae47', 'previous': None}
(Pdb) self.events[x].time.__dict__
dict_proxy({'__str__': <slot wrapper '__str__' of 'datetime.datetime' objects>, '__getattribute__': <slot wrapper '__getattribute__' of 'datetime.datetime' objects>, '__radd__': <slot wrapper '__radd__' of 'datetime.datetime' objects>, 'utctimetuple': <method 'utctimetuple' of 'datetime.datetime' objects>, 'second': <attribute 'second' of 'datetime.datetime' objects>, 'utcnow': <method 'utcnow' of 'datetime.datetime' objects>, '__lt__': <slot wrapper '__lt__' of 'datetime.datetime' objects>, '__sub__': <slot wrapper '__sub__' of 'datetime.datetime' objects>, '__new__': <built-in method __new__ of type object at 0x939c20>, 'min': datetime.datetime(1, 1, 1, 0, 0), 'dst': <method 'dst' of 'datetime.datetime' objects>, 'astimezone': <method 'astimezone' of 'datetime.datetime' objects>, 'strptime': <method 'strptime' of 'datetime.datetime' objects>, 'utcfromtimestamp': <method 'utcfromtimestamp' of 'datetime.datetime' objects>, 'combine': <method 'combine' of 'datetime.datetime' objects>, 'timetuple': <method 'timetuple' of 'datetime.datetime' objects>, 'max': datetime.datetime(9999, 12, 31, 23, 59, 59, 999999), 'tzinfo': <attribute 'tzinfo' of 'datetime.datetime' objects>, '__doc__': 'datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])\n\nThe year, month and day arguments are required. tzinfo may be None, or an\ninstance of a tzinfo subclass. The remaining arguments may be ints or longs.\n', 'tzname': <method 'tzname' of 'datetime.datetime' objects>, 'isoformat': <method 'isoformat' of 'datetime.datetime' objects>, '__ne__': <slot wrapper '__ne__' of 'datetime.datetime' objects>, '__reduce__': <method '__reduce__' of 'datetime.datetime' objects>, 'replace': <method 'replace' of 'datetime.datetime' objects>, 'utcoffset': <method 'utcoffset' of 'datetime.datetime' objects>, 'microsecond': <attribute 'microsecond' of 'datetime.datetime' objects>, '__add__': <slot wrapper '__add__' of 'datetime.datetime' objects>, '__gt__': <slot wrapper '__gt__' of 'datetime.datetime' objects>, 'date': <method 'date' of 'datetime.datetime' objects>, 'now': <method 'now' of 'datetime.datetime' objects>, '__eq__': <slot wrapper '__eq__' of 'datetime.datetime' objects>, 'minute': <attribute 'minute' of 'datetime.datetime' objects>, 'ctime': <method 'ctime' of 'datetime.datetime' objects>, 'hour': <attribute 'hour' of 'datetime.datetime' objects>, 'fromtimestamp': <method 'fromtimestamp' of 'datetime.datetime' objects>, '__le__': <slot wrapper '__le__' of 'datetime.datetime' objects>, '__repr__': <slot wrapper '__repr__' of 'datetime.datetime' objects>, 'time': <method 'time' of 'datetime.datetime' objects>, '__hash__': <slot wrapper '__hash__' of 'datetime.datetime' objects>, '__rsub__': <slot wrapper '__rsub__' of 'datetime.datetime' objects>, 'timetz': <method 'timetz' of 'datetime.datetime' objects>, 'resolution': datetime.timedelta(0, 0, 1), '__ge__': <slot wrapper '__ge__' of 'datetime.datetime' objects>})