У мене є чотири різні файли: головний, векторний, сутнісний та фізичний. Я не буду публікувати весь код, лише імпорт, тому що я думаю, що тут є помилка. (Якщо ви хочете, я можу розмістити більше)
Основні:
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)
.