Question: Is there any way to translate this Java code into Python?

```
class Foo
{
    final static private List<Thingy> thingies = 
       ImmutableList.of(thing1, thing2, thing3);
}

```

e.g. `thingies` is an immutable private list of `Thingy` objects that belongs to the `Foo` class rather than its instance.

I know how to define static class variables from this question [Static class variables in Python](https://stackoverflow.com/questions/68645/static-class-variables-in-python) but I don't know how to make them immutable and private.

Answer: 
You want to look into the `property()` function. It allows you to define your own custom Getter and Setter for a member attribute of a class. It might look something like this:

```
class myClass(object):
  _x = "Hard Coded Value"

  def set_x(self, val): return

  def get_x(self): return self._x

  def del_x(self): return

  x = property(get_x, set_x, del_x, "I'm an immutable property named 'x'")

```

I haven't used it enough to be certain whether it can be used to create something "private" so you'd have to delve into that yourself, but `isinstance` may help.
You can achieve the `final` part using type hints\*. As others have said, `__` achieves the `private` aspect well enough, so

```py
from typing import List
from typing_extensions import Final

class Foo:
    __thingies: Final[List[Thingy]] = ImmutableList.of(thing1, thing2, thing3)

```

I'll leave the definition of `ImmutableList` to you. A `tuple` will probably do.

\*with the usual caveat that users can ignore them