Bit I also wanted to catch the case where they are both set. So ^ is exclusive or, so:
A^B is:
A B Res
F F F
T F T
F T T
T T F

not (A^B) is then:
A B Res
F F T
T F F
F T F
T T T

whereas
A and B is:
A B Res
F F F
T F F
F T F
T T T

... I think. I any case, it won't matter since the need for that construction will disappear when I rewrite the __init__ method(s) as you suggested.