Buy Me a Coffee ☕
<dict >:
from collections.abc import (
MutableMapping , Mapping , Reversible ,
Collection , Sized , Container , Iterable
)
v : dict [ int , str ] = { 0 : ' A ' , 1 : ' B ' , 2 : ' C ' , 3 : ' D ' , 4 : ' E ' }
# v: MutableMapping[int, str] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}
# v: Mapping[int, str] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}
# v: Reversible[int] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}
# v: Collection[int] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}
# v: Sized = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}
# v: Container[int] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}
# v: Iterable[int] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}
print ( v )
# No error
print ( v [ 0 ])
# Reversible, Iterable, Collection, Sized, Container and Iterable get error.
print ( * v )
# Hashable, Sized and Container get error.
print ( v | v )
# MutableMapping, Mapping, Reversible, Collection,
# Sized, Container and Iterable get error.
Enter fullscreen mode
Exit fullscreen mode
<dict.keys() >:
from collections.abc import (
KeysView , MappingView , Reversible ,
Collection , Sized , Container , Iterable
)
v : KeysView [ int ] = { 0 : ' A ' , 1 : ' B ' , 2 : ' C ' , 3 : ' D ' , 4 : ' E ' }. keys ()
# v: MappingView = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.keys()
# v: Reversible[int] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.keys()
# v: Collection[int] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.keys()
# v: Sized = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.keys()
# v: Container[int] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.keys()
# v: Iterable[int] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.keys()
print ( v )
# No error
print ( * v )
# MappingView, Sized and Container get error.
print ( v | v )
# MappingView, Reversible, Collection, Sized,
# Container and Iterable get error.
Enter fullscreen mode
Exit fullscreen mode
<dict.values() >:
from collections.abc import (
ValuesView , MappingView , Hashable , Reversible ,
Collection , Sized , Container , Iterable
)
v : ValuesView [ str ] = { 0 : ' A ' , 1 : ' B ' , 2 : ' C ' , 3 : ' D ' , 4 : ' E ' }. values ()
# v: MappingView = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.values()
# v: Hashable = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.values()
# v: Reversible[str] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.values()
# v: Collection[str] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.values()
# v: Sized = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.values()
# v: Container[str] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.values()
# v: Iterable[str] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.values()
print ( v )
# No error
print ( * v )
# MappingView, Hashable, Sized and Container get error.
Enter fullscreen mode
Exit fullscreen mode
<dict.items() >:
from collections.abc import (
ItemsView , MappingView , Reversible ,
Collection , Sized , Container , Iterable
)
v : ItemsView [ int , str ] = { 0 : ' A ' , 1 : ' B ' , 2 : ' C ' , 3 : ' D ' , 4 : ' E ' }. items ()
# v: MappingView = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.items()
# v: Reversible[tuple[int, str]] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.items()
# v: Collection[tuple[int, str]] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.items()
# v: Sized = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.items()
# v: Container[tuple[int, str]] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.items()
# v: Iterable[tuple[int, str]] = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E'}.items()
print ( v )
# No error
print ( * v )
# MappingView, Sized and Container get error.
print ( v | v )
# MappingView, Collection, Sized, Container and Iterable get error.
Enter fullscreen mode
Exit fullscreen mode
<iterator >:
from collections.abc import Iterator , Iterable
v : Iterator [ int ] = iter ([ 0 , 1 , 2 , 3 , 4 ])
# v: Iterable[int] = iter([0, 1, 2, 3, 4])
print ( v )
print ( * v )
# No error
Enter fullscreen mode
Exit fullscreen mode
<generator >:
from collections.abc import Generator , Iterator , Iterable
v : Generator [ int ] = ( x for x in range ( 5 ))
# v: Iterator[int] = (x for x in range(5))
# v: Iterable[int] = (x for x in range(5))
print ( v )
print ( * v )
# No error
Enter fullscreen mode
Exit fullscreen mode
<str >:
from collections.abc import (
Hashable , Sequence , Reversible , Collection , Sized , Container , Iterable
)
v : str = ' 01234 '
# v: Hashable = '01234'
# v: Sequence[str] = '01234'
# v: Reversible[str] = '01234'
# v: Collection[str] = '01234'
# v: Sized = '01234'
# v: Container[str] = '01234'
# v: Iterable[str] = '01234'
print ( v )
# No error
print ( v [ 0 ], v [ 1 : 3 ])
# Hashable, Reversible, Collection,
# Sized, Container and Iterable get error.
print ( * v )
# Hashable, Sized and Container get error.
print ( v + v )
# Hashable, Sequence, Reversible, Collection,
# Sized, Container and Iterable get error.
Enter fullscreen mode
Exit fullscreen mode
<bytes >:
from collections.abc import (
Hashable , Sequence , Reversible , Collection , Sized , Container , Iterable
)
v : bytes = b ' 01234 '
# v: Hashable = b'01234'
# v: Sequence[int] = b'01234'
# v: Reversible[int] = b'01234'
# v: Collection[int] = b'01234'
# v: Sized = b'01234'
# v: Container[int] = b'01234'
# v: Iterable[int] = b'01234'
print ( v )
# No error
print ( v [ 0 ], v [ 1 : 3 ])
# Hashable, Reversible, Collection, Sized,
# Container and Iterable get error.
print ( * v )
# Hashable, Sized and Container get error.
print ( v + v )
# Hashable, Sequence, Reversible, Collection,
# Sized, Container and Iterable.
Enter fullscreen mode
Exit fullscreen mode
<bytearray >:
from collections.abc import (
MutableSequence , Sequence , Reversible ,
Collection , Sized , Container , Iterable
)
v : bytearray = bytearray ( b ' 01234 ' )
# v: MutableSequence[int] = bytearray(b'01234')
# v: Sequence[int] = bytearray(b'01234')
# v: Reversible[int] = bytearray(b'01234')
# v: Collection[int] = bytearray(b'01234')
# v: Sized = bytearray(b'01234')
# v: Container[int] = bytearray(b'01234')
# v: Iterable[int] = bytearray(b'01234')
print ( v )
# No error
print ( v [ 0 ], v [ 1 : 3 ])
# Reversible, Collection, Sized, Container and Iterable get error.
print ( * v )
# Sized and Container gets error.
print ( v + v )
# MutableSequence, Sequence, Reversible, Collection,
# Sized, Container and Iterable get error.
Enter fullscreen mode
Exit fullscreen mode
<range >:
from collections.abc import (
Hashable , Sequence , Reversible , Collection , Sized , Container , Iterable
)
v : range = range ( 5 )
# v: Hashable = range(5)
# v: Sequence[int] = range(5)
# v: Reversible[int] = range(5)
# v: Collection[int] = range(5)
# v: Sized = range(5)
# v: Container[int] = range(5)
# v: Iterable[int] = range(5)
print ( v )
# No error
print ( v [ 0 ], v [ 1 : 3 ])
# Hashable, Reversible, Collection,
# Sized, Container and Iterable get error.
print ( * v )
# Hashable, Sized and Container get error.
Enter fullscreen mode
Exit fullscreen mode
Top comments (0)