Dört farklı dosyam var: ana, vektör, varlık ve fizik. Ben tüm kodu, sadece ithalat göndereceğiz, çünkü ben hata burada olduğunu düşünüyorum. (İsterseniz daha fazlasını gönderebilirim)
Ana:
import time
from entity import Ent
from vector import Vect
#the rest just creates an entity and prints the result of movement
Varlık:
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
Vektör:
from math import *
class Vect:
#holds i, j, k, and does vector math
Fizik:
from entity import Ent
class Physics:
#physics class gets an entity and does physics calculations on it.
Sonra main.py çalıştırın ve aşağıdaki hatayı alıyorum:
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 için çok yeniyim ama C ++ ile uzun süre çalıştım. Hatanın varlık iki kez, bir kez ana ve daha sonra fizik ithal nedeniyle olduğunu tahmin ediyorum, ancak bir geçici çözüm bilmiyorum. Biri yardım edebilir mi?
from <module> import <name>
, ya da from <modlue> import *
. Aynı adlı referansların üzerine yazma olasılığını önlemek için modül ad alanı altında içe aktarmak daha iyidir.
Entity
ve Vector
yerine Ent
ve Vect
bu tür isimler kısaltmak için hiçbir neden yok. Ve evet, kullanın import vector
ve sonra x = vector.Vector(0,0,0)
.