Saya memiliki empat file berbeda bernama: utama, vektor, entitas dan fisika. Saya tidak akan memposting semua kode, hanya impor, karena saya pikir di situlah kesalahannya. (Jika Anda mau, saya dapat memposting lebih banyak)
Utama:
import time
from entity import Ent
from vector import Vect
#the rest just creates an entity and prints the result of movement
Kesatuan:
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
Vektor:
from math import *
class Vect:
#holds i, j, k, and does vector math
Fisika:
from entity import Ent
class Physics:
#physics class gets an entity and does physics calculations on it.
Saya kemudian lari dari main.py dan saya mendapatkan kesalahan berikut:
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
Saya sangat baru dengan Python tetapi telah bekerja dengan C ++ untuk waktu yang lama. Saya menduga bahwa kesalahan adalah karena mengimpor entitas dua kali, sekali di utama, dan kemudian dalam fisika, tapi saya tidak tahu solusinya. Adakah yang bisa membantu?
from <module> import <name>
, atau from <modlue> import *
. Lebih baik mengimpor di bawah namespace modul untuk mencegah kemungkinan menimpa referensi yang diidentifikasi secara identik.
Entity
dan Vector
bukannya Ent
dan Vect
, tidak ada alasan untuk mempersingkat nama tersebut. Dan ya, gunakan import vector
lalu x = vector.Vector(0,0,0)
.