函数如何在python中使用由其他(函数)生成的变量作为自身的参数?

时间:2011-05-13 23:58:03

标签: python function modular

我正在学习python,我想将我的代码的不同过程分成不同的函数。为此,我需要将前一个函数的变量作为参数提供给另一个函数。我试过这样的事情

def F1 (A):
   B=A+1 

def F2 (B):
   C=B+1
   print C  

F1(1) F2()

例如,在这种情况下,我希望得到3作为最终结果。

但它不起作用。

3 个答案:

答案 0 :(得分:3)

只需return

def F1 (A):
   return A+1

def F2 (B):
   C=B+1
   print C

# Then use it as parameter
F2(F1(1))

答案 1 :(得分:2)

编辑:由于您编辑了帖子:在函数中创建的变量是该函数的本地变量,这意味着除非使用global命令,否则您无法在其他地方引用它们。 global myvar。不建议这样做,如果您的代码如下所示会更好:

def F1 (A):
  return A+1

def F2 (B):
 return B+1

first = F1(1)
second = F2(first)

print first, second

请记住,def F2 (B):表示'使用B作为参数' - 在您使用值调用函数之前,参数是未定义的。

---原始答案---

不确定你要在这里做什么,但让我尝试解释一下功能:

def F1(A):
  ...

这会创建一个名为F1的函数,它接受一个名为A的参数。无论传递给F1的任何参数都将设置为A,所以:

def F1(A):
  print A

F1('hello world')

在此代码中,使用参数F1调用'hello world'。此参数设置为A,然后函数运行print A,现在等效于print 'hello world'

因此,在您的功能中,您会立即将A重新分配给B,但代码中的任何位置都未创建B。作业B=C同样有道理。

答案 2 :(得分:1)

也许您需要一个共享对象来存储结果?像dict

这样的东西
def f1(data):
    data['b'] = data['a'] + 1

def f2(data):
    data['c'] = data['b'] + 1
    print data['c']

my_data = {'a': 1}

f1(my_data)
f2(my_data) # prints 3