如何将局部变量从一个函数传递到另一个函数?

时间:2016-11-12 22:24:59

标签: python python-3.x

我正在尝试制作基于文本的游戏,但我遇到了将一些变量从一个函数传递到另一个函数的麻烦。我想出了如何修改函数内部的变量并返回新值来覆盖原始函数。

我需要帮助的是如何将room1()room2()变量返回something1(x)something2(y)以及main()来解锁{{1}声明。

我应该为ifsomething1(x)提供两个不同的功能吗?

这是我遇到问题的一般示例代码:

something2(y)

1 个答案:

答案 0 :(得分:0)

通过返回变量,您可以pass从一个函数到另一个函数的变量。但是,为此,函数必须调用函数体中的另一个函数,例如:

def addandsquare(x, y):
    y = squarefunction(x+y) # sum x+y is passed to squarefunction, it returns the square and stores it in y.
    return y

def squarefunction(a):
    return (a*a) # returns the square of a given number

print(addandsquare(2, 3)) # prints 25

但是,如果你不能在它的体内调用一个函数,但是你想使用该函数的局部变量,那么你可以将这个变量全局声明为这两个函数。

以下是一个例子:

globvar = 0

def set_globvar_to_one():
    global globvar    # Needed to modify global copy of globvar
    globvar = 1

def print_globvar():
    print globvar     # No need for global declaration to read value of globvar

set_globvar_to_one()
print_globvar()       # Prints 1

希望这有帮助!