'from file import class' пытается импортировать и другие классы - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь выучить python, создав игру, и пытаюсь импортировать класс tr oop из моего файла игры 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']]

Моя проблема в том, что после импорта класс войска продолжает импортировать другие классы из файла, а также вводить данные импорта, объявленные во втором файле, пока не достигнет класса, который он не может импортировать (поскольку он находится в третьем файле, путь к которому я не указал), а затем выходит с ошибкой. Насколько я могу судить, нужный мне класс импортируется правильно, я просто не понимаю, почему он продолжает импортировать другие вещи. Я уверен, что просто пока не до конца понимаю, как работает импорт, но кажется странным, что он продолжается. Как я могу заставить его импортировать только один класс и остановить? Или я должен использовать совершенно другой подход для этого?

Спасибо!

1 Ответ

0 голосов
/ 04 апреля 2020

Импорт работает лучше для Function, а не для Class, когда вы хотите импортировать что-то определенное c из скрипта. Поэтому попробуйте использовать:

def troops():

    return [[3,0,7,1,'small','living',['scout'],False,['Goblin','Goblins']]
    ,[6,4,3,2,'normal','undead',[None],False,['Skeleton','Skeletons']]
    ,[9,0,19,3,'large','living',[None],False,['Ogre','Ogres']]
    ,[10,2,13,3,'normal','magical',[None],False,['Demon','Demons']]
    ,[20,3,35,5,'large','living',[None],False,['Boss','Bosses']]
    ,[1,0,9,1,'normal','undead',[None],False,['Peasant','Peasants']]
    ,[4,1,9,2,'normal','living',[None],False,['Militiaman','Militiamen']]
    ,[6,1,12,3,'normal','living',['scout'],False,['Squire','Squires']]
    ,[10,3,15,3,'normal','living',[None],False,['Knight','Knights']]
    ,[15,3,15,4,'normal','living',[None],False,['Paladin','Paladins']]]

Теперь используйте:

from d5 import troops
Goblins,Skeletons,Ogres,Demons,Bosses,Peasants,Militia,Squires,Knights,Paladins=troops()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...