The problem here is that you're naming attributes/methods starting with two underscores. If the name doesn't also end with two underscores (e. g. __init__), the name is "mangled" internally into the form _<CLASSNAME>__<ATTRNAME>. This name will of course only resolve correctly inside the same class, in other classes or on module level it will refer to a nonexistant name. This functionality is mainly there to avoid naming conflicts with potential subclasses. In 99.9% of all cases this is not necessary, and it is best to not use it at all.
If you're trying to make an attribute or method "private" as you would in Java, that's practically impossible in Python (or Java, cough reflection cough) because there are no access modifiers.
TL;DR: Don't start non-special names with two underscores.