J'ai quatre fichiers différents nommés: principal, vecteur, entité et physique. Je ne publierai pas tout le code, juste les importations, car je pense que c'est là que se trouve l'erreur. (Si vous voulez, je peux poster plus)
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
Vecteur:
from math import *
class Vect:
#holds i, j, k, and does vector math
La physique:
from entity import Ent
class Physics:
#physics class gets an entity and does physics calculations on it.
Je lance ensuite depuis main.py et j'obtiens l'erreur suivante:
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
Je suis très nouveau sur Python, mais je travaille avec C ++ depuis longtemps. Je suppose que l'erreur est due à l'importation de l'entité deux fois, une fois en principal et plus tard en physique, mais je ne connais pas de solution. Quelqu'un peut-il aider?
from <module> import <name>
, ou from <modlue> import *
. Mieux vaut importer sous l'espace de noms du module pour éviter le risque d'écraser des références de nom identique.
Entity
et Vector
au lieu de Ent
et Vect
, il n'y a aucune raison de raccourcir ces noms. Et oui, utilisez import vector
et ensuite x = vector.Vector(0,0,0)
.