Most of the time, you only need __init__. Use __new__ when you need to control WHETHER/HOW an object is created.