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

2024-04-20 01:31:58 发布

您现在位置:Python中文网/ 问答频道 /正文

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

def F1 (A):
   B=A+1 

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

F1(1) F2()

例如,在本例中,我期望得到3作为最终结果。你知道吗

但它不起作用。你知道吗


Tags: 函数代码参数进程deff2f1print
3条回答

只要return它:

def F1 (A):
   return A+1

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

# Then use it as parameter
F2(F1(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

编辑:因为您已经编辑了post:在函数中创建的变量是该函数的本地变量,这意味着您不能在其他地方引用它们,除非您使用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')

在这段代码中,用参数'hello world'调用F1。这个参数设置为A,然后函数运行print A,现在它相当于print 'hello world'。你知道吗

因此,在函数中,您会立即将A重新分配给B,但是B并没有在代码中的任何地方创建。赋值B=C也没有什么意义。你知道吗

相关问题 更多 >