我根据反馈编辑了我的帖子。 基本上,我需要使用函数1中的几个变量,我需要在函数2中打印它。
我该怎么做?
希望收到你的来信。
蛋糕。
def function_one():
number_one = 5
number_two = 6
number_three = 7
def function_two():
print(number_one)
print(number_two)
print(number_three)
function_one()
function_two()
答案 0 :(得分:2)
Shawn的答案很棒,非常直截了当,几乎可以肯定你在寻找什么。他建议你通过返回变量将变量带出function_one范围。解决问题的另一种方法是将function_two带入带有闭包的function_one范围。
def function_one():
num_one = 5
num_two = 6
num_three = 7
def function_two():
print(num_one)
print(num_two)
print(num_three)
return function_two
func_two = function_one()
func_two()
编辑以解决您的评论。您也可以像这样直接调用function_two。但这是不太可读和单一的IMO。
function_one()()
答案 1 :(得分:1)
好的,所以你的变量被捕获到函数的范围内。要在该范围之外使用它们,您需要将它们退出,例如:
def function_one():
number_one = 5
number_two = 6
number_three = 7
return number_one,number_two, number_three
def function_two(number1, number2, number3):
print(number1)
print(number2)
print(number3)
one, two, three = function_one()
function_two(one, two, three)
在这里,我已经使各种变量在不同范围内的命名不同,以使其更加明显。
答案 2 :(得分:0)
只需使用return语句就可以像魅力
一样工作def function_one():
num=5
return num
def function_two():
print(function_one())
function_two()
答案 3 :(得分:0)
选项1:使用全局变量。 - Using global variables in a function other than the one that created them(例如)
选项2:返回值
离。
def func_one():
var1 = 1
var2 = 2
return var1, var2
def func_two(a,b):
print a
print b
# you can return to multiple vars like:
one, two = func_one()
func_two(one, two)
# this would print 1 and 2
# if you return multiple values to one var, they will return as a list
# returning one value per function may keep your code cleaner
the_vars = func_one()
func_two(the_vars[0], the_vars[1])
# this would print 1 and 2 also