When setting class attributes, you may want to limit yourself to objects that will be shared across many or all instances of that class. For values that will change or be unique to each instance, set them in the init() method.

For example, you may have a threading.Lock instance that is used when creating an instance, and then a per-instance threading.Lock that will be engaged for per-instance synchronization tasks.