gpt4 book ai didi

python - 许多类似的功能做的事情略有不同

转载 作者:行者123 更新时间:2023-11-28 22:25:10 25 4
gpt4 key购买 nike

我有九个非常相似的函数,它们做的事情略有不同。它们都采用相同的输入,并在对它们执行类似的运算后返回相同类型的输出。作为一个非常简单的并行示例,考虑基本的数学计算:加法、减法、乘法、除法、取模等。所有这些都需要 2 个输入并产生一个输出。假设一些外部力量控制应用哪个操作,如下所示:

def add(a, b):
return a+b

def sub(a, b):
return a-b

def mul(a, b):
return a*b

....

# Emulating a very basic switch-case
cases = {'a' : add,
's' : sub,
'm' : mul,
'd' : div,
...
... }

# And the function call like so (`choice` is external and out of my control):
cases[choice](x, y)

有没有一种很好的方法可以将所有这些函数打包在一起(主要是为了避免为所有函数编写类似的 docstrings :-P)?实际上,一般来说,有没有更好的方法来编写上述功能?

最佳答案

根据这些其他方法的大小,您可以将它们全部打包在一个方法中,并在 switch 语句中使用 lambda。

def foo(a, b, context):
""" Depending on context, perform arithmetic """
d = {
'a': lambda x, y: x + y,
's': lambda x, y: x - y,
..
}
return d[context](a, b)

foo(x, y, choice)

这将所有内容放在一个方法中并避免了多个文档字符串。

关于python - 许多类似的功能做的事情略有不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45725443/

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