2017-02-11 5 views
-2

Поэтому у меня есть пример функции здесь:Аргументы функций в Python, которые могут или не могут существовать

def options(option1,option2): 
    if option1 == 'y': 
     print("Yay") 
    else: 
     print("No") 

    if option2 == 'y': 
     print("Cool") 
    else: 
     print("Stop") 

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

userInput = input("Type Y or N: ") 
userInput2 = input("Type Y or N: ") 
options(userInput,userInput2) 

Теперь вот мой вопрос:

Я делаю текстовую приключенческую игру, в которой пользователь может выбрать варианты 1 - 4. Я хочу иметь один определенный метод, который я смогу позвонить независимо от того, сколько вариантов предлагается. В одной сцене у меня может быть 3 варианта предоставления пользователю. В другом случае, я могу только 1. Как я могу остановить от того, чтобы сделать это:

#if there's 4 options in the scene call this method: 
def options4(option1,option2,option3,option4): 
    blabla 

#if there's 3 options in the scene call this method: 
def options3(option1,option2,option3): 
    blabla 

#if there's 2 options in the scene call this method: 
def options2(option1,option2): 
    blabla 

#if there's 1 option in the scene call this method: 
def options1(option1): 
    blabla 

Могу ли я потенциально гнездо функции?

+0

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

ответ

0

Определение функции с дополнительными параметрами, например .:

def options(option1='N', option2='N'): 
    print(option1, option2) 

Теперь вы можете звонить с любым количеством параметров, например .:

options(option2='Y') 
#N Y 
0

Создать класс этого. Класс может сделать вызовы функций более чистыми. Я предложил бы делать что-то вроде:

`class Options: 
    def __init__(): 
     self.option1 = None 
     self.option2 = None 
     # ect. 

    def choice4 (op1,op2,op3,op4): 
     # function 
    # ect` 

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