Tôi có bốn tệp khác nhau có tên: chính, vector, thực thể và vật lý. Tôi sẽ không đăng tất cả mã, chỉ nhập, vì tôi nghĩ đó là lỗi. (Nếu bạn muốn, tôi có thể đăng thêm)
Chủ yếu:
import time
from entity import Ent
from vector import Vect
#the rest just creates an entity and prints the result of movement
Thực thể:
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
Vectơ:
from math import *
class Vect:
#holds i, j, k, and does vector math
Vật lý:
from entity import Ent
class Physics:
#physics class gets an entity and does physics calculations on it.
Sau đó tôi chạy từ main.py và tôi gặp lỗi sau:
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
Tôi rất mới với Python nhưng đã làm việc với C ++ trong một thời gian dài. Tôi đoán rằng lỗi là do nhập thực thể hai lần, một lần chính và sau đó trong vật lý, nhưng tôi không biết cách giải quyết. Có ai giúp được không?
from <module> import <name>
, hoặc from <modlue> import *
. Tốt hơn là nhập trong không gian tên mô-đun để ngăn chặn cơ hội ghi đè các tham chiếu có tên giống hệt.
Entity
và Vector
thay vì Ent
và Vect
, không có lý do gì để rút ngắn những tên như vậy. Và có, sử dụng import vector
và sau đó x = vector.Vector(0,0,0)
.