For name mangling, I think you need to start your variable with underscores, and then it won't be accessible for reading outside the module either?
$ cat >foo.py __FOO = 1 class Foo: __FOO = 2 $ cat >bar.py import foo print(foo.__FOO) print(foo.Foo()._Foo__FOO) $ python3 bar.py 1 2
class Foo: bar = 'public' __bar = bar # stashed