无法从另一个函数调用变量

时间:2015-09-11 16:54:49

标签: python

我根据反馈编辑了我的帖子。 基本上,我需要使用函数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()

4 个答案:

答案 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