Olá Pedro, tudo bem?
A colocação de dois underscore antes do atributo não o tornaria privado? Ou seja, acessível somente por método (get ou set) da própria classe?
Fiz um teste em console, e ao tentar acessar um atributo diretamente (objeto.atributo), tive o seguinte retorno:
Traceback (most recent call last):
File "C:\Users\Glauber\AppData\Local\Programs\Python\Python310\lib\code.py", line 90, in runcode
exec(code, self.locals)
File "<input>", line 1, in <module>
AttributeError: 'Date' object has no attribute '__dia'
Ao retirar os dois underscore do atributo, o acesso direto, volta ser permitido.
Ainda não cheguei ao capítulo mencionado em seu post, portanto, pode haver algum conteúdo mais a frente que possa justificar o contrário do que apresentei... rs :)