我正在学习python,我想将我的代码的不同过程分成不同的函数。为此,我需要将前一个函数的变量作为参数提供给另一个函数。我试过这样的事情
def F1 (A):
B=A+1
def F2 (B):
C=B+1
print C
F1(1) F2()
例如,在这种情况下,我希望得到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