the `__forbidden` class attr is a set, but you use assignment / `==` in methods.  Do you mean to be using `set.add` and `in set`?