在python集合上使用intersect
方法或&
運算符有什麼區別。我讀到了在以前的版本中,參數&
必須是一個集合,而不是任何迭代,儘管這似乎不再是這種情況。Python集合操作的運算符和非運算符版本之間的區別
在語義,約束,性能或簡單pythonic風格方面有差異嗎?
在python集合上使用intersect
方法或&
運算符有什麼區別。我讀到了在以前的版本中,參數&
必須是一個集合,而不是任何迭代,儘管這似乎不再是這種情況。Python集合操作的運算符和非運算符版本之間的區別
在語義,約束,性能或簡單pythonic風格方面有差異嗎?
這些方法可以綁定到名稱上以備後用,而爲了更大的抽象的目的,操作符可以被operator
模塊中的操作所取代。
功能沒有什麼區別,儘管使用運算符有點快,因爲Python特殊情況下訪問這些方法。大多數項目的性能差異並不大,因此要求使用操作員。
你能否解釋一下「特殊情況下訪問這些方法」的含義? – atlantis 2012-02-10 00:47:58
我相信Python在實例化對象時查找操作符方法的地址並將它們存儲在表中或類似的東西中,所以它不需要對它們進行常規屬性查找。我不是100%確定這一點,但我似乎記得在某個地方閱讀它。 – kindall 2012-02-10 17:25:53