an __init__ method can take any number of arguments like other functions or methodsthe arguments can be defined with default valuesmaking them optional to the caller howeverthe first argument self in the definition of __init__ is special