Как передать функцию ввода в другую функцию без запроса ввода дважды - PullRequest
0 голосов
/ 06 августа 2020

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

def Choice():
    ChoiceGame= input("Select whether you want to play game (a) or  (b)")
    return ChoiceGame

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

def GamePick(num_players = 2, num_cards2 = 4):

    ChoiceGame= Choice()
    if ChoiceGame== "a": 

на этом этапе я хотел бы использовать прошлое вклад для дальнейшего развития игры без повторного задания вопроса. Есть мысли?

1 Ответ

0 голосов
/ 06 августа 2020

Ну, вы можете объявить ChoiceGame как глобальную переменную, прежде чем присвоить ей значение:

def Choice():
    ChoiceGame= input("Select whether you want to play game (a) or  (b)")
    return ChoiceGame
  
def GamePick(num_players = 2, num_cards2 = 4):
    global ChoiceGame
    ChoiceGame = Choice()

GamePick()

Теперь, когда GamePick запущен, ChoiceGame доступна в globals () , вне функция, которую я могу запустить:

>>> ChoiceGame
Output : 'a'

В качестве альтернативы вы можете сделать его атрибутом класса, инициализировать его, когда вам нужно, а затем получить к нему доступ из любого места

class GamePick:
    def __init__(self, num_players = 2, num_cards2 = 4):
        
        self.num_players = num_players
        self.num_cards2 = num_cards2
        self.ChoiceGame= input("Select whether you want to play game (a) or  (b): ")
        
    
Game = GamePick()

Теперь вы можете получить ChoiceGame откуда угодно, например:

>>> Game.ChoiceGame
Output : 'a'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...