【发布时间】:2018-01-02 16:39:33
【问题描述】:
我在Usage of __slots__? 中读到,在 Python 中使用 __slots__ 实际上可以节省时间。但是,当我尝试使用datetime 查找所用时间时,结果却相反。
import datetime as t
class A():
def __init__(self,x,y):
self.x = x
self.y = y
t1 = t.datetime.now()
a = A(1,2)
t2 = t.datetime.now()
print(t2-t1)
... 输出:0:00:00.000011
并使用插槽:
import datetime as t
class A():
__slots__ = 'x','y'
def __init__(self,x,y):
self.x = x
self.y = y
t1 = t.datetime.now()
a = A(1,2)
t2 = t.datetime.now()
print(t2-t1)
...给出输出:0:00:00.000021
使用插槽实际上需要更长的时间。那我们为什么要使用__slots__呢?
【问题讨论】:
-
我注意到以这种方式手动使用
datetime不是定时代码的推荐方法。有a module meant for timing code snippets。并且(如答案中所述)您必须多次重复短操作以获得任何接近有意义的结果。
标签: python performance class time slots