У меня есть четыре разных файла: основной, векторный, объект и физика. Я не буду публиковать весь код, только импорт, потому что я думаю, что здесь ошибка. (Если хотите, могу выложить больше)
Главный:
import time
from entity import Ent
from vector import Vect
#the rest just creates an entity and prints the result of movement
Сущность:
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
Вектор:
from math import *
class Vect:
#holds i, j, k, and does vector math
Физика:
from entity import Ent
class Physics:
#physics class gets an entity and does physics calculations on it.
Затем я запускаю из main.py и получаю следующую ошибку:
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
Я очень плохо знаком с Python, но долгое время работал с C ++. Я предполагаю, что ошибка происходит из-за импорта сущности дважды, один раз в основную, а затем в физике, но я не знаю обходного пути. Кто-нибудь может помочь?
from <module> import <name>
, или from <modlue> import *
. Лучше импортировать в пространство имен модуля, чтобы исключить возможность перезаписи ссылок с одинаковыми именами.
Entity
и Vector
вместо Ent
и Vect
нет причин сокращать такие имена. И да, используйте import vector
и тогда x = vector.Vector(0,0,0)
.