我Usage of __slots__?讀到,在使用Python __slots__
實際上可以節省時間。但是,當我試圖找到使用datetime
所花的時間時,結果是相反的。爲什麼使用__slots__減慢這段代碼?
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'這種方式不是用於定時碼的推薦方法。有[用於計時代碼片段的模塊](https://docs.python.org/3/library/timeit.html)。 (正如答案中提到的)你必須多次重複短操作才能使任何事情接近有意義的結果。 –