2016-02-13 3 views
2

Итак, я посмотрел на ответ на свой вопрос, но, похоже, он не работает для меня.Импорт словарей в python

В принципе, я делаю текстовую игру, и в одном файле у меня есть словарь, содержащий оружие, которое может собирать персонаж, но когда я пытаюсь импортировать словарь, он говорит, что не может импортировать это имя. Вот часть моего кода:

файл словаря:

import random 
import sci_fi_rp 

weapons_stash_c = { 
    "pistols":{ 
     "basic_repeater":{ 
      "name": "Basic Repeater", 
      "dmg": random.randint(6,9), 
        "ammo": 12, 
        "max_ammo": 12, 
        "level": hero.lvl 
       }, 

     "laser_pistol":{ 
      "name": "Laser Pistol", 
      "dmg": random.randint(8,11), 
        "ammo": 8, 
        "max_ammo": 8, 
        "level": hero.lvl 
       },     
    "laser_blaster":{ 
      "name": "Laser Blaster", 
        "dmg" : random.randint(10,12), 
        "ammo": 7, 
        "max_ammo": 7, 
        "level": hero.lvl 
        }, 

Игра файла:

import random 
import time 
from sci_fi_rp_weapons import weapons_stash_c 

#Equipped weapon 
laser_blaster = weapons_stash_c["pistols"]["laser_blaster"] 
weapon_equipped = laser_blaster 

Я действительно не знаю, что случилось, они находятся в том же каталоге. Возможно, я сделал неуклюжую ошибку, которую я не знаю, я пытался проверить. Благодаря!

+0

Разве вы не забыли о '__init __. py' где-нибудь? – matino

+1

Можете ли вы добавить точную ошибку, которая была вам прислана? –

+0

Я предполагаю, что с помощью '' dmg ": random.randint (6,9)' вы хотите, чтобы либо оружие наносило случайное количество урона при каждом выстреле, либо каждый экземпляр этого оружия имел несколько другой урон. Однако выражение оценивается только один раз, поэтому каждый выстрел каждого оружия такого типа будет иметь тот же урон, который случайным образом определяется один раз при запуске игры. –

ответ

1

Я сделал несколько тестов с вашим кодом и проблема, кажется, фактический словарь сам

Имя файла: sci_fi_rp.py < < это имеет словарь

Filname: game.py

import sci_fi_rp << you put sci_fi_rp_weapons which isn't a file 
print(sci_fi_rp.weapons_stash_c) << this returns a dictionary error 

Таким образом, проблема заключается в именах файлов, которые я думаю, а затем есть ошибка словаря

Попробуйте повторно, чтение файла словаря ошибка была получена была (SyntaxError: неожиданный EOF при разборе)

Смежные вопросы