python通过传入其他原始输入绕过原始输入

python通过传入其他原始输入绕过原始输入,python,python-2.7,Python,Python 2.7,我正在创建一个基于文本的冒险游戏。角色正在浏览由城市街区组成的地图。我有一个direction\u函数,它接受raw\u输入,然后将字符移动到正确的相邻块。不过,我有一些特殊的功能,比如在大多数街区可以拾取物品或与之交互的人。这里我也使用原始输入。如果他们输入正确的关键字,他们会进行交互,但如果他们通过输入方向来忽略它们,则会将它们传递到方向(direction)函数,该函数会再次提示他们输入原始输入。是否有办法将他们的初始答案传递到方向功能,这样他们就不必重复答案 这是我的方向函数: def

我正在创建一个基于文本的冒险游戏。角色正在浏览由城市街区组成的地图。我有一个
direction\u函数
,它接受
raw\u输入
,然后将字符移动到正确的相邻块。不过,我有一些特殊的功能,比如在大多数街区可以拾取物品或与之交互的人。这里我也使用
原始输入。如果他们输入正确的关键字,他们会进行交互,但如果他们通过输入方向来忽略它们,则会将它们传递到
方向(direction)函数
,该函数会再次提示他们输入
原始输入
。是否有办法将他们的初始答案传递到
方向功能
,这样他们就不必重复答案

这是我的方向函数:

def direction_function(left, right, up, down, re):
    direc = raw_input(">")
    if direc in west:
        left()
    elif direc in east:
        right()
    elif direc in north:
        up()
    elif direc in south:
        down()
    elif direc in inventory_list:
        inventory_check()
        re()
    else:
        print "try again"
        re()
我为每个块指定一个函数,如下所示

def block3_0():
    print "You see a bike lying in your neighbor's yard. Not much else of interest."
    direc = raw_input(">")
    if direc in ("take bike", "steal bike", "ride bike", "borrow bike", "use bike"):
        print "\n"
        bike.remove("bike")
        school_route()
    else:
        direction_function(block2_0, block4_0, block3_1, block3_0, block3_0)

当然,您可以在
direction\u函数中使用默认参数值
,将上一次调用的最终结果传递给
raw\u input
,例如:

def direction_function(direction=None):
    direction = direction or raw_input()
    # Do something with the input

如果没有提供方向(常规工作流程),测试将调用
raw\u input
获取一些信息。如果提供了一个方向(例如,如果您已经阅读了,您将通过的方向),它将直接被使用。

是的,您只需以这样一种方式定义您的函数即可

例如,考虑这样的事情:

def direction_function(input = 'default_val'):
    if input != 'default_val':
        input = raw_input()

    # do your stuff here

如果函数的结构如上所述,则可以在调用direction_function()方法的代码块中检查交互值或方向条件,并将调用函数时获取的输入值传递给它。因此,如果方向是玩家选择的,那么输入应该是“默认值”。

你能发布一些代码吗?只有相关部分,不一定是所有对话。使用此代码,如果输入(不使用名称
input
,它会掩盖一个内置项)不是默认值,它将被
raw\u input
调用覆盖,从而阻止传入值。