Tengo una situación en la que hay dos grandes clases relacionadas de python y, por lo tanto, las he puesto en archivos separados. Vamos a decir que las clases son Cobra y Rat.Cómo romper el bucle de importación en python
Ahora necesitamos llamar a los métodos de Rat de métodos de Cobra y viceversa. Para esto necesito importar Cobra en Rat.py y Rat en Cobra.py
Esto crea un ciclo de importación y da un error. No puedo importar Cobra dentro de Cobra.
¿Cómo solucionar esto?
Cobra.py:
import Rat
class Cobra():
def check_prey(self, rat):
# Some logic
rat.foo()
Rat.py:
import Cobra
class Rat():
def check_predator(self, snake):
# some_logic ..
snake.foo()
Ninguno del código que muestra muestra ese problema. –
Esto no debería suceder, dos clases no pueden conocerse entre sí. Si está utilizando las clases 'Rat' y' Cobra', ¿qué tal una clase base común 'Animal'? De esta forma puedes importar 'Animal' tanto en 'Rat' como en' Cobra'. –
"dos clases no pueden conocerse entre sí" es simplemente incorrecto. La bidireccionalidad de la navegación es una característica fundamental de OO y está disponible en la mayoría de los lenguajes OO, C++, Java, C#. –