gpt4 book ai didi

Python - 在函数之间来回传递参数

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:15 26 4
gpt4 key购买 nike

假设我有一些参数传递给一个函数,我使用这些参数进行一些计算,然后将结果传递给另一个函数,并在其中进一步使用它们。我将如何将结果传递回第一个函数并跳到一个点,以便数据不会发送回第二个函数以避免陷入循环。

这两个函数位于两个不同的 python 脚本中。

我目前的做法是添加任何应该来自第二个脚本的新参数作为非关键字参数,并将所有参数从第一个函数传递到第二个函数,即使它们在第二个脚本中不需要第二。第二个函数将所有参数传递回第一个函数,并使用非关键字参数上的 if 条件来检查它是否具有默认值,从而确定数据是否已由第二个函数发回功能。在 f1.py 中:

 def calc1(a, b, c, d = []):
a = a+b
c = a*c
import f2
f2.calc2(a, b, c)

If d != []: # This checks whether data has been sent by the second argument, in which case d will not have its default value
print(b, d) # This should print the results from f2, so 'b' should
# retain its value from calc1.
return

在另一个脚本(f2.py)中

 def calc2(a, b, c):
d = a + c

import f1
f1.calc1(a, b, c, d) # So even though 'b' wasn't used it is there in
# f2 to be sent back to calc1
return

最佳答案

让两个方法相互递归调用通常是一个坏主意。两个文件之间的情况尤其糟糕。看起来您想要调用 calc1(),让它在内部调用 calc2(),然后根据 的结果决定要做什么calc2().

这就是你想做的事吗?

#### f1.py
import f2

def calc1(a, b, c):
a = a+b
c = a*c
d = f2.calc2(a, b, c)
# This checks whether data has been sent by the second argument,
# in which case d will not have its default value
if d:
# This should print the results from f2, so 'b' should retain
# its value from calc1.
print(b, d)

#### f2.py
def calc2(a, b, c):
return a + c

关于Python - 在函数之间来回传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33791619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com