Cómo evitar que sobrescriba las funciones de Python al codificar?

Una fuente de dolor de cabeza constante cuando rastrear errores en mi código de Python son fragmentos aparentemente inocuos como este:

 list = ['a', 'b', 'c', 'c']
 list(set(list))

Esto falla porque he sobrescrito la lista de funciones () con la lista de variables.

Un ejemplo artificial obviamente, pero el punto es que Python felizmente me permite sobrescribir funciones incorporadas con variables. Me doy cuenta de que esta es una característica crucial en Python, pero me gustaría que el intérprete me avisara cuando lo haga en mi código, ya que generalmente no pretendo hacerlo.

¿Alguien puede sugerir una solución (además de ser más cuidadoso), ya que sigo tropezando con este problema?

Respuestas a la pregunta(5)

Su respuesta a la pregunta