diff options
| author | Jens W. Klein <jk@kleinundpartner.at> | 2020-02-17 00:37:45 +0100 |
|---|---|---|
| committer | Jens W. Klein <jk@kleinundpartner.at> | 2020-02-17 00:51:11 +0100 |
| commit | 9c90b934a8550f7fde566891667923cbde7f6035 (patch) | |
| tree | 6ab77d08ee3097df884ff1e1d895295c4594838d /src/zope/interface/interface.py | |
| parent | 7f6f60e824ac34e2bf9ec890e6c361f57bfc823b (diff) | |
| download | zope-interface-hash-performance.tar.gz | |
performance: store cached hashvalue in slot (~1.6x faster)hash-performance
Diffstat (limited to 'src/zope/interface/interface.py')
| -rw-r--r-- | src/zope/interface/interface.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/zope/interface/interface.py b/src/zope/interface/interface.py index ade6f42..0f667a6 100644 --- a/src/zope/interface/interface.py +++ b/src/zope/interface/interface.py @@ -131,6 +131,8 @@ class SpecificationBase(object): '__iro__', '__sro__', '__weakref__', + # Things used in InterfaceClass. + '_hashvalue', ) def providedBy(self, ob): @@ -598,10 +600,10 @@ class InterfaceClass(Element, InterfaceBase, Specification): def __hash__(self): try: - return self._v_cached_hash + return self._hashvalue except AttributeError: - self._v_cached_hash = hash((self.__name__, self.__module__)) - return self._v_cached_hash + self._hashvalue = hash((self.__name__, self.__module__)) + return self._hashvalue def __eq__(self, other): c = self.__cmp(other) |
