gpt4 book ai didi

python - 让函数相互交互的正确方法

转载 作者:太空宇宙 更新时间:2023-11-04 11:08:51 25 4
gpt4 key购买 nike

我正在编写一个非常基础的应用程序。我可以通过两种方式让它工作:

  1. def a():
    xxxxx
    return data

    def b():
    data = a()
    //use data in function
    return yyy

    if __name__ == "__main__":
    output = b()
    print(output)
  2. def a():
    xxxxx
    return data

    def b(data):
    return yyy

    if __name__ == "__main__":
    data = a()
    output = b(data)
    print(output)

我正在寻找一些关于如何创建函数的有用信息或文档。我上面的两个例子都有效,但是你应该如何让函数相互交互呢?我认为使用 main 函数调用几乎所有函数并将其返回那里是不正确的,而且第一个示例对我来说似乎有点奇怪,因为函数 b 完全依赖于不带参数的a

是否有关于如何执行此操作的明确解释或指南?

最佳答案

独立性更好 - 您可以将 b 与其他数据一起重用(比如 c() 生成一些其他数据)。发生的情况也更清楚 - b 对您输入的数据进行操作,而不是与 a 的某种“神奇”连接。

如果您更改了 a(),您可能还必须更改 b() 才能仍然能够使用 a() - 就是这样紧密耦合 ( more... ),通常是不可取的。

如果你真的有硬依赖,并且只想在每个函数中放置更少的代码,请考虑内部函数:

def getStringOfNumbersTimes2(numbers):
"""Returns a string containing the input numbers multiplicated by 2"""
def mult2():
"""Mults each number by 2."""
return [n*2 for n in numbers]

# create the string - with : in between numbers
return ' : '.join(map(str,mult2()))

print(getStringOfNumbersTimes2([1,2,3]))
print(getStringOfNumbersTimes2([9.42,8.31,7.2]))

输出:

2 : 4 : 6
18.84 : 16.62 :14.4

这是一个人为的例子 - 只有当我永远不需要 getStringOfNumbersTimes2 之外的 mult2 并且只想永远拥有 getStringOfNumbersTimes2 时,我才会这样做输出我给它的两倍。

关于python - 让函数相互交互的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58789018/

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