我坚持在另一个函数中使用前一个函数中定义的变量。例如,我有这样的代码:
def get_two_nums():
...
...
op = ...
num1 = ...
num2 = ...
answer = ...
def question():
response = int(input("What is {} {} {}? ".format(num1, op, num2)))
if response == answer:
.....如何在第二个函数中使用第一个函数中定义的变量?提前谢谢你
发布于 2016-02-11 22:10:03
变量是函数的局部变量;您需要return要共享给调用者的相关值,并将它们传递给使用它们的下一个函数。如下所示:
def get_two_nums():
...
# define the relevant variables
return op, n1, n2, ans
def question(op, num1, num2, answer):
...
# do something with the variables现在您可以调用
question(*get_two_nums()) # unpack the tuple into the function parameters或
op, n1, n2, ans = get_two_nums()
question(op, n1, n2, ans)发布于 2016-02-11 22:09:40
为什么不返回一个元组呢?
def get_two_nums():
...
...
op = ...
num1 = ...
num2 = ...
answer = ...
return op, num1, num2, answer
def question():
op, num1, num2, answer = get_two_nums()
response = int(input("What is {} {} {}? ".format(num1, op, num2)))
if response == answer:
# the rest of your logic here发布于 2016-02-11 22:11:34
您不能简单地传递它们,因为get_two_nums中的变量仅在get_two_nums函数的作用域中定义。所以基本上你有两个选择:
在proposed.
get_two_nums变量作为全局变量(有关更多信息,请参阅global statement ),如下面的代码片段所示:def get_two_nums():global num1 num1 = 'value1‘global num2 num2 = 'value2’global num3 num3 = 'value3‘def value1():#调用get_two_nums设置全局变量,以便进一步使用get_two_nums() response =int(input(“什么是{}?".format(num1,num2,num3) if response == answer:#这里有一些代码...
警告:应该避免使用全局变量的,请参阅Why are global variables evil?以更好地了解我正在谈论的内容……
https://stackoverflow.com/questions/35341505
复制相似问题