Kaydet (Commit) 3170d1cc authored tarafından Raymond Hettinger's avatar Raymond Hettinger

Issue #21421: Add __slots__ to the MappingViews ABCs.

üst 90e93383
...@@ -440,6 +440,8 @@ Mapping.register(mappingproxy) ...@@ -440,6 +440,8 @@ Mapping.register(mappingproxy)
class MappingView(Sized): class MappingView(Sized):
__slots__ = '_mapping',
def __init__(self, mapping): def __init__(self, mapping):
self._mapping = mapping self._mapping = mapping
...@@ -452,6 +454,8 @@ class MappingView(Sized): ...@@ -452,6 +454,8 @@ class MappingView(Sized):
class KeysView(MappingView, Set): class KeysView(MappingView, Set):
__slots__ = ()
@classmethod @classmethod
def _from_iterable(self, it): def _from_iterable(self, it):
return set(it) return set(it)
...@@ -467,6 +471,8 @@ KeysView.register(dict_keys) ...@@ -467,6 +471,8 @@ KeysView.register(dict_keys)
class ItemsView(MappingView, Set): class ItemsView(MappingView, Set):
__slots__ = ()
@classmethod @classmethod
def _from_iterable(self, it): def _from_iterable(self, it):
return set(it) return set(it)
...@@ -489,6 +495,8 @@ ItemsView.register(dict_items) ...@@ -489,6 +495,8 @@ ItemsView.register(dict_items)
class ValuesView(MappingView): class ValuesView(MappingView):
__slots__ = ()
def __contains__(self, value): def __contains__(self, value):
for key in self._mapping: for key in self._mapping:
if value == self._mapping[key]: if value == self._mapping[key]:
......
...@@ -73,6 +73,9 @@ Library ...@@ -73,6 +73,9 @@ Library
Decimal.quantize() method in the Python version. It had never been Decimal.quantize() method in the Python version. It had never been
present in the C version. present in the C version.
- Issue #21421: Add __slots__ to the MappingViews ABC.
Patch by Josh Rosenberg.
- Issue #21101: Eliminate double hashing in the C speed-up code for - Issue #21101: Eliminate double hashing in the C speed-up code for
collections.Counter(). collections.Counter().
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment