Как вызвать переменную из одной функции в другом файле внутри функции в другом файле?
Я не могу действительно скопировать весь код в обоих этих файлах, так как он содержит более 1000 строк, но по сути я делаю программу, которая имеет переменные "сила", "выносливость", "сила", "ловкость", "интеллект", "мудрость" и "удача" (это ролевая игра), и я пытаюсь получить переменную "урон", которая представляет собой уравнение "сила" * "ловкость" / 100, в другой файл. Все эти переменные находятся внутри функции character() в файле специально для создания вашего персонажа, и я пытаюсь снова вызвать эти переменные в другом файле для основной игры, внутри переменной с именем fight(). Я пробовал множество вещей, таких как глобальные переменные и использование возврата, но ничего не помогло мне. Извините, если я объяснил это плохо, прокомментируйте, если у вас есть какие-либо вопросы.
Код в вопросе.
character.py
def character():
#tons of stuff go here
global damage
damage = strength * dexterity / 100
game.py
def fight():
choice = input('(Type in the corresponding number to choose.) ')
global enemy_health
global damage
if choice == 1:
print ' '
print enemy_health,
enemy_health += -damage
print '-->', enemy_health
Спасибо за ваше время.
1 ответ
Я полагаю, вы могли бы попробовать импортировать character.py в game.py.
game.py: (отредактировано)
import character
character_health = character.health
character_strength = character.strength
def fight():
...
Но да, использовать классы.
Изменить: пример класса
game.py:
class Character(object):
def __init__(self, health, strength):
self.health = health
self.strength = strength
self.alive = True
def check_dead(self):
self.alive = not(self.health)
def fight(self, enemy):
self.health -= enemy.strength
enemy.health -= self.strength
self.check_dead()
enemy.check_dead()
if __name__ == "__main__":
player = Character(300, 10) # health = 300, strength = 10
enemy = Character(50, 5) # health = 50, strength = 5
player.fight(enemy)
print("Player's health: {}\nIs he alive? {}\nEnemy's health: {}\nIs he alive? {}".format(player.health, player.alive, enemy.health, enemy.alive))