Python 无法从其他函数调用变量
我根据反馈编辑了我的帖子。 基本上,我需要使用函数1中的两个变量,并在函数2中打印它 我该怎么做呢 希望收到你的来信 蛋糕Python 无法从其他函数调用变量,python,Python,我根据反馈编辑了我的帖子。 基本上,我需要使用函数1中的两个变量,并在函数2中打印它 我该怎么做呢 希望收到你的来信 蛋糕 好的,您的变量被捕获在函数的范围内。要在该范围之外使用它们,您需要将它们返回,例如: def function_one(): number_one = 5 number_two = 6 number_three = 7 return number_one,number_two, number_three def function_two(number1,
好的,您的变量被捕获在函数的范围内。要在该范围之外使用它们,您需要将它们返回,例如:
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)
在这里,我在不同的范围内对不同的变量进行了不同的命名,以使其更加明显。好的,因此您的变量被捕获在函数的范围内。要在该范围之外使用它们,您需要将它们返回,例如:
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带入函数1的范围
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()
编辑以解决您的评论。您也可以像这样直接调用函数\u 2。但在我看来,这是不太可读和不和谐的
function_one()()
肖恩的答案很好,非常直截了当,几乎可以肯定你在寻找什么。他建议通过返回变量,将变量带出函数的一个作用域。解决这个问题的另一种方法是用闭包将你的函数2带入函数1的范围
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()
编辑以解决您的评论。您也可以像这样直接调用函数\u 2。但在我看来,这是不太可读和不和谐的
function\u one()()
只需使用return语句,它就可以正常工作了
def function_one():
num=5
return num
def function_two():
print(function_one())
function_two()
只要使用return语句,它就会非常有效
def function_one():
num=5
return num
def function_two():
print(function_one())
function_two()
选项1:使用全局变量。 -(例如) 选项2:返回值 前
选项1:使用全局变量。 -(例如) 选项2:返回值 前
编写一些新的更简单的代码来提问。尽量用最简单的几行代码来解决问题。谢谢你,彼得,我换了思路。@Cake,太好了,谢谢你。我认为你得到了更有用的答案。写一些新的更简单的代码来提问。尽量用最简单的几行代码来解决问题。谢谢你,彼得,我换了思路。@Cake,太好了,谢谢你。我想你得到了更多有用的答案。非常感谢你的回复。在数组中返回它是最优雅的解决方案吗?要使它优雅,有很多事情要做。我希望能用一种非常简单的方法把事情弄清楚:)走,然后跑:)@Cake这是一个元组,当你返回并分配时它会自动打包和解包。非常感谢你的回复。在数组中返回它是最优雅的解决方案吗?要使它优雅,有很多事情要做。我希望用一种非常简单的方法来把事情弄清楚:)走,然后跑:)@Cake,这是一个元组,当你返回并分配时,它会自动打包和解包。很好,我使用了你的方法。我把函数二放在函数一的范围内。但是,我不确定你对func_two=function_one()的意思。请仔细看看function_one的定义。最后,它返回函数_two,该函数必须分配给一个变量,以便以后调用。这使得func_two成为一个函数,所以你给它添加()来调用它。很好,我使用了你的方法。我把函数二放在函数一的范围内。但是,我不确定你对func_two=function_one()的意思。请仔细看看function_one的定义。最后,它返回函数_two,该函数必须分配给一个变量,以便以后调用。这使得func_二成为一个函数,所以您可以向它添加()来调用它。