【发布时间】:2020-07-16 17:53:59
【问题描述】:
我正在尝试通过制作游戏来学习 python,并且我正在尝试将部队类从我的 d5 游戏文件导入到当前文件中。这个类只有变量,我想在两个文件中都使用它们:
import pygame as pg
import random as rd
import sys
sys.path.append('C:/Users/hornu/OneDrive/Dungeon')
from d5 import troops
这是它应该导入的类:
class troops:
Goblins=[3,0,7,1,'small','living',['scout'],False,['Goblin','Goblins']]
Skeletons=[6,4,3,2,'normal','undead',[None],False,['Skeleton','Skeletons']]
Ogres=[9,0,19,3,'large','living',[None],False,['Ogre','Ogres']]
Demons=[10,2,13,3,'normal','magical',[None],False,['Demon','Demons']]
Bosses=[20,3,35,5,'large','living',[None],False,['Boss','Bosses']]
Peasants=[1,0,9,1,'normal','undead',[None],False,['Peasant','Peasants']]
Militia=[4,1,9,2,'normal','living',[None],False,['Militiaman','Militiamen']]
Squires=[6,1,12,3,'normal','living',['scout'],False,['Squire','Squires']]
Knights=[10,3,15,3,'normal','living',[None],False,['Knight','Knights']]
Paladins=[15,3,15,4,'normal','living',[None],False,['Paladin','Paladins']]
我的问题是,在导入了部队类之后,它继续从文件中导入其他类以及进入第二个文件中声明的导入,直到它到达一个无法导入的类(因为它在第三个文件中,我没有给出路径),然后它退出并出现错误。据我所知,我想要的类被正确导入,我只是不明白为什么它继续导入其他东西。 我敢肯定,我还没有完全理解导入是如何工作的,但它继续进行似乎很奇怪。我怎样才能让它只导入单个类并停止?还是我应该为此使用完全不同的方法?
谢谢!
【问题讨论】:
-
当你导入一个类时,所有从这个类所在的文件中导入的东西都会被执行。例如,如果我的班级
x(即x.py)需要os模块才能工作(所以x.py中有import os),那么在我运行from x import x之后,import os将被执行. -
试试答案[现在编辑]
-
@Rafaó 好的,我理解那部分,但我可以绕过它。然而,真正的问题是其他不相关的类也从文件中导入,这就是它失败的地方。我不明白为什么要导入其他类?