如何从Python中获取函数的新值?

时间:2011-07-11 05:34:24

标签: python function

如果我输入“Ab3”作为参数,我将如何将“Ab4”值返回给我?

此函数的目标是获取字符串的第3个字符并向其中添加一个字符,除非它是4,在这种情况下,它不会添加一个字符串而只是退出。我不知道如何从“Ab3”获取该函数创建的“Ab4”并将其分配回“area”变量。

def east(area):

    area_list = list(area)

    if "1" == area_list[2]:
        area_list[2] = "2"

    elif "2" == area_list[2]:
        area_list[2] = "3"

    elif "3" == area_list[2]:
        area_list[2] = "4"

    elif "4" == area_list[2]:
        cannot_go(why)

    else:
        exit(0)

    area = "".join(area_list)

3 个答案:

答案 0 :(得分:5)

你只是错过了函数中的return语句,你需要它,因为你使用的是不可变的字符串输入。您可以使用以下代码:

def east(area):
    if area[-1] in '123':
        return area[:-1] + str(int(area[-1])+1)
    elif "4" == area[-1]:
        print 'no way'
        return area
    else:
        return 'incorrect input'# or throw and exception depends on what you really need

根据Chris评论编辑

答案 1 :(得分:1)

Python字符串是不可变的(http://docs.python.org/library/stdtypes.html),因此您无法实际更新'区域'对象(尽管您可以将区域重新分配给新值,如您所示)。如果希望调用者获取新值,则应返回新的区域变量(返回区域)。

答案 2 :(得分:0)

你所拥有的将会奏效,你只需要返回价值。将最后一行更改为return ''.join(area_list)