Diferencia entre métodos y funciones, en Python en comparación con C ++

Estoy haciendo tutoriales de Code Academy en Python, y estoy un poco confundido acerca de la definición de método y función. Desde el tutorial:

Ya conoces algunas de las funciones integradas que hemos utilizado en (o para crear) cadenas, como.upper(), .lower(), str()ylen().

Viniendo de C ++, pensaría.upper() y.lower() se llamarían métodos ylen() ystr() funciones En el tutorial, los términos parecen ser usados ​​indistintamente.

¿Python distingue entre métodos y funciones de la forma en que lo hace C ++?

diferente aDiferencia entre un método y una función., Estoy preguntando por los detalles de Python. Los términos 'método' y 'función' no parecen seguir siempre la definición dada en la respuesta aceptada de la pregunta vinculada.

Respuestas a la pregunta(4)

Su respuesta a la pregunta