0

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

def F1 (A):
   B=A+1 

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

F1(1) F2()

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

但它不起作用。

4

3 回答 3

3

只是return它:

def F1 (A):
   return A+1

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

# Then use it as parameter
F2(F1(1))
于 2011-05-14T00:19:14.500 回答
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'.

因此,在您的函数中,您会立即重新分配AB,但B尚未在代码中的任何位置创建。这项任务B=C同样没有意义。

于 2011-05-14T00:07:03.133 回答
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
于 2011-05-14T00:24:54.467 回答