Read the code carefully
from typing import Protocol, runtime_checkable
@runtime_checkable
class Sized(Protocol):
def __len__(self) -> int: ...
class Bag:
def __init__(self, items: list) -> None:
self._items = items
def __len__(self) -> int:
return len(self._items)
class Empty:
pass
class FakeSized:
__len__ = "not actually a method"
print(isinstance(Bag([1, 2, 3]), Sized))
print(isinstance(Empty(), Sized))
print(isinstance([1, 2], Sized))
print(isinstance("hello", Sized))
print(isinstance(42, Sized))
print(isinstance(FakeSized(), Sized))
What will the program print? Write here: