Powering len() and in Without __contains__

class Roster:
    def __init__(self, names):
        self._names = names

    def __len__(self):
        return len(self._names)

    def __iter__(self):
        return iter(self._names)

r = Roster(["Ann", "Bo", "Cy"])
print(len(r))
print("Bo" in r)

Roster defines no __contains__. What do the two print calls output?

A

3, then False (falling back to iteration checks identity, not equality, so "Bo" never matches the strings inside)

B

3, then True

C

3, then TypeError: argument of type 'Roster' is not iterable (in requires an explicit contains and will not fall back to iter)

D

TypeError: object of type 'Roster' has no len(), then True (len needs an extra argument beyond self)