Hola,
Yo también vengo de Java y ando metiendome en python, como dice el compañero @razpeitia es muy sencillo adaptarte a python, con algunas cosas te darás de topes en la pared, pero por que son demasiado sencillas en python.
Ahora, sobre lo que comentabas del self, es algo similar a lo que es el this en Java, osea que sirve para hacer referencia a los atributos de la clase, por ejemplo este código java:
Código Java:
Ver originalclass Gato {
void Gato(nombre) {
this.nombre = nombre;
}
}
Es equivalente a este en python:
Código Python:
Ver originalclass Gato:
def __init__(self, nombre):
self.nombre = nombre
Lo de los metodos sobrecargados ya te comentó como va, pero igual, mira este código en java:
Código Java:
Ver originalclass Gato {
void Gato() {
this.nombre = "";
}
void Gato(nombre) {
this.nombre = nombre;
}
}
Igual en python:
Código Python:
Ver originalclass Gato:
def __init__ (self, nombre=""):
self.nombre = nombre
Bueno puede que me equivoque ya que apenas y empiezo a programar
Saludos