¿Forzar un tipo de parámetro de función en Python?

Tengo una función en una clase de Python que agrega interfaces a una lista.

def RegisterAsListener(self, inListener):
    self.__TransitListeners.append(inListener)

Esto es bueno, porque una clase solo necesita heredar de dicha Interfaz, tomar este objeto y registrarse para todas las actualizaciones.

class ITransit():
    def TransitUpdate(self, data):
        raise NotImplementedError("You must define this function.")

(asumiendo que hice una interfaz correctamente)

Como no soy el único en este proyecto, no quiero que alguien llame a la función RegisterAsListener con un tipo de datos incorrecto. Podría ingresar un código para verificar el tipo dentro de la función de registro, pero sería más fácil si el compilador simplemente le gritara al programador cuando intentan ingresar un tipo de datos incorrecto.

def RegisterAsListener(self, IListener inListener):
    self.__TransitListeners.append(inListener)

¿Hay alguna manera de hacer esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta