Ho quattro diversi file denominati: principale, vettore, entità e fisica. Non pubblicherò tutto il codice, ma solo le importazioni, perché penso che sia lì che si trova l'errore. (Se vuoi, posso postare di più)
Principale:
import time
from entity import Ent
from vector import Vect
#the rest just creates an entity and prints the result of movement
Entità:
from vector import Vect
from physics import Physics
class Ent:
#holds vector information and id
def tick(self, dt):
#this is where physics changes the velocity and position vectors
Vettore:
from math import *
class Vect:
#holds i, j, k, and does vector math
Fisica:
from entity import Ent
class Physics:
#physics class gets an entity and does physics calculations on it.
Quindi corro da main.py e ottengo il seguente errore:
Traceback (most recent call last): File "main.py", line 2, in <module> from entity import Ent File ".../entity.py", line 5, in <module> from physics import Physics File ".../physics.py", line 2, in <module> from entity import Ent ImportError: cannot import name Ent
Sono molto nuovo in Python ma ho lavorato a lungo con C ++. Immagino che l'errore sia dovuto all'importazione dell'entità due volte, una volta nella parte principale e in seguito nella fisica, ma non conosco una soluzione alternativa. Qualcuno può aiutare?
from <module> import <name>
, o from <modlue> import *
. Meglio importare nello spazio dei nomi del modulo per evitare la possibilità di sovrascrivere riferimenti identici.
Entity
e Vector
invece di Ent
e Vect
, non c'è motivo di abbreviare tali nomi. E sì, usa import vector
e poi x = vector.Vector(0,0,0)
.