Итак, __a
не является статической переменной, это переменная класса.И из-за двойного нижнего подчеркивания это переменная искаженная .То есть, чтобы сделать его псевдоприватным, он был автоматически переименован в _<classname>__<variablename>
вместо __<variablename>
.К нему по-прежнему могут обращаться экземпляры этого класса как __<variablename>
, подклассы не получают эту специальную обработку.
Я бы порекомендовал вам не использовать двойное подчеркивание, простоподчеркивание (а), что оно является частным, и (б), чтобы избежать искажения имени.