2024-04-20 01:31:58 发布
网友
我正在学习python,我想把代码的不同进程分成不同的函数。为此,我需要将前一个函数的变量作为另一个函数的参数。我试过这样的东西
def F1 (A): B=A+1 def F2 (B): C=B+1 print C
F1(1) F2()
例如,在本例中,我期望得到3作为最终结果。你知道吗
但它不起作用。你知道吗
只要return它:
return
def F1 (A): return A+1 def F2 (B): C=B+1 print C # Then use it as parameter F2(F1(1))
也许你需要一个共享对象来存储结果?类似于dict:
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。但不建议这样做,如果您的代码如下所示则更好:
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 F2 (B):
B
-原始答案-
我不知道你到底想做什么,但让我试着解释一下函数:
def F1(A): ...
这将创建一个名为F1的函数,该函数接受一个名为A的参数。传递给F1的任何参数都将设置为A,因此:
F1
A
def F1(A): print A F1('hello world')
在这段代码中,用参数'hello world'调用F1。这个参数设置为A,然后函数运行print A,现在它相当于print 'hello world'。你知道吗
'hello world'
print A
print 'hello world'
因此,在函数中,您会立即将A重新分配给B,但是B并没有在代码中的任何地方创建。赋值B=C也没有什么意义。你知道吗
B=C
只要
return
它:也许你需要一个共享对象来存储结果?类似于
dict
:编辑:因为您已经编辑了post:在函数中创建的变量是该函数的本地变量,这意味着您不能在其他地方引用它们,除非您使用
global
命令,例如global myvar
。但不建议这样做,如果您的代码如下所示则更好:请记住,
def F2 (B):
表示“使用B
作为参数”参数是未定义的,除非您使用值调用函数。你知道吗-原始答案-
我不知道你到底想做什么,但让我试着解释一下函数:
这将创建一个名为
F1
的函数,该函数接受一个名为A
的参数。传递给F1
的任何参数都将设置为A
,因此:在这段代码中,用参数
'hello world'
调用F1
。这个参数设置为A
,然后函数运行print A
,现在它相当于print 'hello world'
。你知道吗因此,在函数中,您会立即将
A
重新分配给B
,但是B
并没有在代码中的任何地方创建。赋值B=C
也没有什么意义。你知道吗相关问题 更多 >
编程相关推荐