我正在学习 python,我想将我的代码的不同进程分成不同的函数。为此,我需要将先前函数的变量作为参数提供给另一个函数。我试过这样的事情
def F1 (A):
B=A+1
def F2 (B):
C=B+1
print C
F1(1) F2()
例如,在这种情况下,我希望得到 3 作为最终结果。
但它不起作用。
只是return
它:
def F1 (A):
return A+1
def F2 (B):
C=B+1
print C
# Then use it as parameter
F2(F1(1))
编辑:由于您已经编辑了您的帖子:在函数中创建的变量是该函数的本地变量,这意味着您不能在其他地方引用它们,除非您使用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
同样没有意义。
也许您需要一个共享对象来存储结果?像一个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