Как вызвать переменную из одной функции в другом файле внутри функции в другом файле?

Я не могу действительно скопировать весь код в обоих этих файлах, так как он содержит более 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))
Другие вопросы по тегам