python中可能存在或不存在的函数参数

时间:2017-02-11 05:07:34

标签: python function arguments

所以我在这里有一个示例函数:

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

我可以嵌套这个函数吗?

2 个答案:

答案 0 :(得分:0)

使用可选参数定义一个函数,例如:

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

现在您可以使用任意数量的参数调用它,例如:

options(option2='Y')
#N Y

答案 1 :(得分:0)

创建一个类。一个类可以使函数调用更清晰。我建议你这样做:

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

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

否则,您可以尝试使用字典,或者像其他人建议的那样创建列表