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 can't do either of those things in Python, not in the sense you do them in Java, anyway.

By convention, names prefixed with an underscore are considered private and should not be accessed outside the implementation, but nothing in Python enforces this convention. It's considered more of a warning that you're messing with an implementation detail that may change without warning in a future version of the code.
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.