`if 'a' in b` still assumes that test will always be iterable, even if not superscriptable. Thus, as an example you would still get an errant `TypeError: argument of type 'NoneType' is not iterable` in the case that `test` were, for some reason, None (i.e., outside caller calls `print_context('derp', [None,None,None])`. `hasattr` prevents this kind of false-failure by passing the block silently even on a `None`, such as `hasattr(None, 'foobar')`

However, I'd be happy to amend the commit if you folks think it is better -- I just want my vow assertion to show! :)