Eu tenho quatro arquivos diferentes nomeados: principal, vetor, entidade e física. Não vou postar todo o código, apenas as importações, porque acho que é aí que está o erro. (Se você quiser, posso postar mais)
A Principal:
import time
from entity import Ent
from vector import Vect
#the rest just creates an entity and prints the result of movement
Entidade:
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
Vetor:
from math import *
class Vect:
#holds i, j, k, and does vector math
Física:
from entity import Ent
class Physics:
#physics class gets an entity and does physics calculations on it.
Em seguida, corro de main.py e recebo o seguinte erro:
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
Eu sou muito novo em Python, mas trabalhei com C ++ por um longo tempo. Suponho que o erro se deva a importar a entidade duas vezes, uma na principal e mais tarde na física, mas não conheço uma solução alternativa. Alguém pode ajudar?
from <module> import <name>
ou from <modlue> import *
. Melhor importar no espaço de nome do módulo para evitar a chance de substituir referências nomeadas de forma idêntica.
Entity
e, em Vector
vez de Ent
e Vect
, não há razão para encurtar esses nomes. E sim, use import vector
e então x = vector.Vector(0,0,0)
.